Skip to content

Commit 90e5671

Browse files
committed
Merge branch 'master' of git.semmle.com:Semmle/ql into CVE481
2 parents 2885d48 + ee5cf95 commit 90e5671

File tree

282 files changed

+21796
-15122
lines changed

Some content is hidden

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

282 files changed

+21796
-15122
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" ] }

change-notes/1.24/analysis-cpp.md

Lines changed: 6 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`
@@ -46,3 +46,5 @@ The following changes in version 1.24 affect C/C++ analysis in all applications.
4646
the following improvements:
4747
* The library now models data flow through `strdup` and similar functions.
4848
* The library now models data flow through formatting functions such as `sprintf`.
49+
* The security pack taint tracking library (`semmle.code.cpp.security.TaintTracking`) uses a new intermediate representation. This provides a more precise analysis of pointers to stack variables and flow through parameters, improving the results of many security queries.
50+
* The global value numbering library (`semmle.code.cpp.valuenumbering.GlobalValueNumbering`) uses a new intermediate representation to provide a more precise analysis of heap allocated memory and pointers to stack variables.

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: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,23 +9,28 @@
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

16+
* Calls can now be resolved to class members in more cases, leading to more results from the security queries.
17+
1418
* 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)
1819
- [Electron](https://electronjs.org/)
20+
- [Handlebars](https://www.npmjs.com/package/handlebars)
21+
- [Koa](https://www.npmjs.com/package/koa)
1922
- [Node.js](https://nodejs.org/)
2023
- [Socket.IO](https://socket.io/)
21-
- [ws](https://github.com/websockets/ws)
2224
- [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)
25+
- [chrome-remote-interface](https://www.npmjs.com/package/chrome-remote-interface)
2526
- [for-in](https://www.npmjs.com/package/for-in)
2627
- [for-own](https://www.npmjs.com/package/for-own)
28+
- [http2](https://nodejs.org/api/http2.html)
29+
- [lazy-cache](https://www.npmjs.com/package/lazy-cache)
30+
- [react](https://www.npmjs.com/package/react)
2731
- [send](https://www.npmjs.com/package/send)
28-
- [chrome-remote-interface](https://www.npmjs.com/package/chrome-remote-interface)
32+
- [typeahead.js](https://www.npmjs.com/package/typeahead.js)
33+
- [ws](https://github.com/websockets/ws)
2934

3035
## New queries
3136

@@ -35,6 +40,7 @@
3540
| 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. |
3641
| 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. |
3742
| 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. |
43+
| Unsafe jQuery plugin (`js/unsafe-jquery-plugin`) | Highlights potential XSS vulnerabilities in unsafely designed jQuery plugins. Results are shown on LGTM by default. |
3844

3945
## Changes to existing queries
4046

config/identical-files.json

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -222,10 +222,12 @@
222222
"cpp/ql/src/semmle/code/cpp/ir/implementation/aliased_ssa/internal/PrintSSA.qll",
223223
"csharp/ql/src/semmle/code/csharp/ir/implementation/unaliased_ssa/internal/PrintSSA.qll"
224224
],
225-
"C++ IR ValueNumberInternal": [
225+
"IR ValueNumberInternal": [
226226
"cpp/ql/src/semmle/code/cpp/ir/implementation/raw/gvn/internal/ValueNumberingInternal.qll",
227227
"cpp/ql/src/semmle/code/cpp/ir/implementation/unaliased_ssa/gvn/internal/ValueNumberingInternal.qll",
228-
"cpp/ql/src/semmle/code/cpp/ir/implementation/aliased_ssa/gvn/internal/ValueNumberingInternal.qll"
228+
"cpp/ql/src/semmle/code/cpp/ir/implementation/aliased_ssa/gvn/internal/ValueNumberingInternal.qll",
229+
"csharp/ql/src/semmle/code/csharp/ir/implementation/raw/gvn/internal/ValueNumberingInternal.qll",
230+
"csharp/ql/src/semmle/code/csharp/ir/implementation/unaliased_ssa/gvn/internal/ValueNumberingInternal.qll"
229231
],
230232
"C++ IR ValueNumber": [
231233
"cpp/ql/src/semmle/code/cpp/ir/implementation/raw/gvn/ValueNumbering.qll",

0 commit comments

Comments
 (0)