Skip to content

Commit 7997e1d

Browse files
Merge branch 'master' into objectapi-to-valueapi-expectedmappingforformatstring
2 parents 9338d21 + 9e3ed21 commit 7997e1d

File tree

353 files changed

+18027
-14005
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

353 files changed

+18027
-14005
lines changed

.codeqlmanifest.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,4 @@
22
"*/ql/test/qlpack.yml",
33
"*/upgrades/qlpack.yml",
44
"misc/legacy-support/*/qlpack.yml",
5-
"misc/suite-helpers/qlpack.yml",
6-
"codeql/.codeqlmanifest.json" ] }
5+
"misc/suite-helpers/qlpack.yml" ] }

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
# editor and OS artifacts
22
*~
33
.DS_STORE
4+
*.swp
45

56
# query compilation caches
67
.cache

change-notes/1.24/analysis-cpp.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,10 @@ The following changes in version 1.24 affect C/C++ analysis in all applications.
2727

2828
## Changes to libraries
2929

30-
* The data-flow library has been improved when flow through functions needs to be
31-
combined with both taint tracking and flow through fields allowing more flow
32-
to be tracked. This affects and improves some security queries, which may
33-
report additional results.
30+
* The data-flow library has been improved, which affects and improves some security queries. The improvements are:
31+
- Track flow through functions that combine taint tracking with flow through fields.
32+
- Track flow through clone-like functions, that is, functions that read contents of a field from a
33+
parameter and stores the value in the field of a returned object.
3434
* Created the `semmle.code.cpp.models.interfaces.Allocation` library to model allocation such as `new` expressions and calls to `malloc`. This in intended to replace the functionality in `semmle.code.cpp.commons.Alloc` with a more consistent and useful interface.
3535
* Created the `semmle.code.cpp.models.interfaces.Deallocation` library to model deallocation such as `delete` expressions and calls to `free`. This in intended to replace the functionality in `semmle.code.cpp.commons.Alloc` with a more consistent and useful interface.
3636
* The new class `StackVariable` should be used in place of `LocalScopeVariable`

change-notes/1.24/analysis-csharp.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,10 +33,10 @@ The following changes in version 1.24 affect C# analysis in all applications.
3333

3434
## Changes to libraries
3535

36-
* The data-flow library has been improved when flow through methods needs to be
37-
combined with both taint tracking and flow through fields allowing more flow
38-
to be tracked. This affects and improves most security queries, which may
39-
report additional results.
36+
* The data-flow library has been improved, which affects and improves most security queries. The improvements are:
37+
- Track flow through methods that combine taint tracking with flow through fields.
38+
- Track flow through clone-like methods, that is, methods that read contents of a field from a
39+
parameter and stores the value in the field of a returned object.
4040
* The taint tracking library now tracks flow through (implicit or explicit) conversion operator calls.
4141
* [Code contracts](https://docs.microsoft.com/en-us/dotnet/framework/debug-trace-profile/code-contracts) are now recognized, and are treated like any other assertion methods.
4242
* Expression nullability flow state is given by the predicates `Expr.hasNotNullFlowState()` and `Expr.hasMaybeNullFlowState()`.

change-notes/1.24/analysis-java.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,10 @@ The following changes in version 1.24 affect Java analysis in all applications.
2626

2727
## Changes to libraries
2828

29-
* The data-flow library has been improved when flow through methods needs to be
30-
combined with both taint tracking and flow through fields allowing more flow
31-
to be tracked. This affects and improves most security queries, which may
32-
report additional results.
29+
* The data-flow library has been improved, which affects and improves most security queries. The improvements are:
30+
- Track flow through methods that combine taint tracking with flow through fields.
31+
- Track flow through clone-like methods, that is, methods that read contents of a field from a
32+
parameter and stores the value in the field of a returned object.
3333
* Identification of test classes has been improved. Previously, one of the
3434
match conditions would classify any class with a name containing the string
3535
"Test" as a test class, but now this matching has been replaced with one that

change-notes/1.24/analysis-javascript.md

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,22 +9,26 @@
99

1010
* Imports that rely on path-mappings from a `tsconfig.json` file can now be resolved.
1111

12+
* Export declarations of the form `export * as ns from "x"` are now analyzed more precisely.
13+
1214
* The analysis of sanitizer guards has improved, leading to fewer false-positive results from the security queries.
1315

1416
* Support for the following frameworks and libraries has been improved:
15-
- [react](https://www.npmjs.com/package/react)
16-
- [typeahead.js](https://www.npmjs.com/package/typeahead.js)
17-
- [Handlebars](https://www.npmjs.com/package/handlebars)
1817
- [Electron](https://electronjs.org/)
18+
- [Handlebars](https://www.npmjs.com/package/handlebars)
19+
- [Koa](https://www.npmjs.com/package/koa)
1920
- [Node.js](https://nodejs.org/)
2021
- [Socket.IO](https://socket.io/)
21-
- [ws](https://github.com/websockets/ws)
2222
- [WebSocket](https://developer.mozilla.org/en-US/docs/Web/API/WebSockets_API)
23-
- [Koa](https://www.npmjs.com/package/koa)
24-
- [lazy-cache](https://www.npmjs.com/package/lazy-cache)
23+
- [chrome-remote-interface](https://www.npmjs.com/package/chrome-remote-interface)
2524
- [for-in](https://www.npmjs.com/package/for-in)
2625
- [for-own](https://www.npmjs.com/package/for-own)
26+
- [http2](https://nodejs.org/api/http2.html)
27+
- [lazy-cache](https://www.npmjs.com/package/lazy-cache)
28+
- [react](https://www.npmjs.com/package/react)
2729
- [send](https://www.npmjs.com/package/send)
30+
- [typeahead.js](https://www.npmjs.com/package/typeahead.js)
31+
- [ws](https://github.com/websockets/ws)
2832

2933
## New queries
3034

@@ -34,6 +38,7 @@
3438
| Regular expression always matches (`js/regex/always-matches`) | correctness, regular-expressions | Highlights regular expression checks that trivially succeed by matching an empty substring. Results are shown on LGTM by default. |
3539
| Missing await (`js/missing-await`) | correctness | Highlights expressions that operate directly on a promise object in a nonsensical way, instead of awaiting its result. Results are shown on LGTM by default. |
3640
| Prototype pollution in utility function (`js/prototype-pollution-utility`) | security, external/cwe/cwe-400, external/cwe/cwe-471 | Highlights recursive copying operations that are susceptible to prototype pollution. Results are shown on LGTM by default. |
41+
| Unsafe jQuery plugin (`js/unsafe-jquery-plugin`) | Highlights potential XSS vulnerabilities in unsafely designed jQuery plugins. Results are shown on LGTM by default. |
3742

3843
## Changes to existing queries
3944

@@ -47,6 +52,7 @@
4752
| Use of call stack introspection in strict mode (`js/strict-mode-call-stack-introspection`) | Fewer false positive results | The query no longer flags expression statements. |
4853
| Missing CSRF middleware (`js/missing-token-validation`) | Fewer false positive results | The query reports fewer duplicates and only flags handlers that explicitly access cookie data. |
4954
| Uncontrolled data used in path expression (`js/path-injection`) | More results | This query now recognizes additional ways dangerous paths can be constructed. |
55+
| Uncontrolled command line (`js/command-line-injection`) | More results | This query now recognizes additional ways of constructing arguments to `cmd.exe` and `/bin/sh`. |
5056

5157
## Changes to libraries
5258

change-notes/1.24/analysis-python.md

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
# Improvements to Python analysis
2+
3+
The following changes in version 1.24 affect Python analysis in all applications.
4+
5+
## General improvements
6+
7+
## New queries
8+
9+
| **Query** | **Tags** | **Purpose** |
10+
|-----------------------------|-----------|--------------------------------------------------------------------|
11+
12+
## Changes to existing queries
13+
14+
| **Query** | **Expected impact** | **Change** |
15+
|----------------------------|------------------------|------------------------------------------------------------------|
16+
17+
### Web framework support
18+
19+
The QL-library support for the web frameworks Bottle, CherryPy, Falcon, Pyramid, TurboGears, Tornado, and Twisted have
20+
been fixed so they provide a proper HttpRequestTaintSource, instead of a TaintSource. This will enable results for the following queries:
21+
22+
- py/path-injection
23+
- py/command-line-injection
24+
- py/reflective-xss
25+
- py/sql-injection
26+
- py/code-injection
27+
- py/unsafe-deserialization
28+
- py/url-redirection
29+
30+
The QL-library support for the web framework Twisted have been fixed so they provide a proper
31+
HttpResponseTaintSink, instead of a TaintSink. This will enable results for the following
32+
queries:
33+
34+
- py/reflective-xss
35+
- py/stack-trace-exposure
36+
37+
## Changes to libraries

0 commit comments

Comments
 (0)