You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CONTRIBUTING.md
+2Lines changed: 2 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -38,6 +38,8 @@ If you have an idea for a query that you would like to share with other CodeQL u
38
38
39
39
- The queries and libraries must be autoformatted, for example using the "Format Document" command in [CodeQL for Visual Studio Code](https://help.semmle.com/codeql/codeql-for-vscode/procedures/about-codeql-for-vscode.html).
40
40
41
+
If you prefer, you can use this [pre-commit hook](misc/scripts/pre-commit) that automatically checks whether your files are correctly formatted. See the [pre-commit hook installation guide](docs/install-pre-commit-hook.md) for instructions on how to install the hook.
42
+
41
43
4.**Compilation**
42
44
43
45
- Compilation of the query and any associated libraries and tests must be resilient to future development of the [supported](docs/supported-queries.md) libraries. This means that the functionality cannot use internal libraries, cannot depend on the output of `getAQlClass`, and cannot make use of regexp matching on `toString`.
|`py/unsafe-deserialization`| Different results. | The underlying data flow library has been changed. See below for more details. |
12
+
|`py/path-injection`| Different results. | The underlying data flow library has been changed. See below for more details. |
13
+
|`py/command-line-injection`| Different results. | The underlying data flow library has been changed. See below for more details. |
14
+
|`py/reflective-xss`| Different results. | The underlying data flow library has been changed. See below for more details. |
15
+
|`py/sql-injection`| Different results. | The underlying data flow library has been changed. See below for more details. |
16
+
|`py/code-injection`| Different results. | The underlying data flow library has been changed. See below for more details. |
20
17
## Changes to libraries
21
-
18
+
* Some of the security queries now use the shared data flow library for data flow and taint tracking. This has resulted in an overall more robust and accurate analysis. The libraries mentioned below have been modelled in this new framework. Other libraries (e.g. the web framework `CherryPy`) have not been modelled yet, and this may lead to a temporary loss of results for these frameworks.
19
+
* Improved modelling of the following serialization libraries:
20
+
-`PyYAML`
21
+
-`dill`
22
+
-`pickle`
23
+
-`marshal`
24
+
* Improved modelling of the following web frameworks:
25
+
-`Django` (Note that modelling of class-based response handlers is currently incomplete.)
26
+
-`Flask`
27
+
* Support for Werkzeug `MultiDict`.
28
+
* Support for the [Python Database API Specification v2.0 (PEP-249)](https://www.python.org/dev/peps/pep-0249/), including the following libraries:
29
+
-`MySQLdb`
30
+
-`mysql-connector-python`
31
+
-`django.db`
32
+
* Improved modelling of the following command execution libraries:
33
+
-`Fabric`
34
+
-`Invoke`
35
+
* Improved modelling of security-related standard library modules, such as `os`, `popen2`, `platform`, and `base64`.
36
+
* The original versions of the updated queries have been preserved [here](https://github.com/github/codeql/tree/main/python/ql/src/experimental/Security-old-dataflow).
22
37
* Added taint tracking support for string formatting through f-strings.
0 commit comments