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: change-notes/1.25/analysis-cpp.md
+3Lines changed: 3 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -16,6 +16,7 @@ The following changes in version 1.25 affect C/C++ analysis in all applications.
16
16
17
17
## Changes to libraries
18
18
19
+
* The library `VCS.qll` and all queries that imported it have been removed.
19
20
* The data-flow library has been improved, which affects most security queries by potentially
20
21
adding more results. Flow through functions now takes nested field reads/writes into account.
21
22
For example, the library is able to track flow from `taint()` to `sink()` via the method
@@ -39,3 +40,5 @@ The following changes in version 1.25 affect C/C++ analysis in all applications.
39
40
}
40
41
};
41
42
```
43
+
* The security pack taint tracking library (`semmle.code.cpp.security.TaintTracking`) now considers that equality checks may block the flow of taint. This results in fewer false positive results from queries that use this library.
|Misspelled variable name (`js/misspelled-variable-name`) |Message changed|The message for this query now correctly identifies the misspelled variable in additional cases. |
39
-
|Uncontrolled data used in path expression (`js/path-injection`) |More results | This query now recognizes additional file system calls. |
40
-
|Uncontrolled command line (`js/command-line-injection`) |More results | This query now recognizes additional command execution calls. |
41
-
|Client-side URL redirect (`js/client-side-unvalidated-url-redirection`) |Less results |This query now recognizes additional safe patterns of doing URL redirects. |
42
-
|Client-side cross-site scripting (`js/xss`) |Less results | This query now recognizes additional safe strings based on URLs. |
|Client-side URL redirect (`js/client-side-unvalidated-url-redirection`) |Fewer results | This query now recognizes additional safe patterns of doing URL redirects. |
41
+
|Client-side cross-site scripting (`js/xss`) |Fewer results | This query now recognizes additional safe strings based on URLs. |
42
+
|Code injection (`js/code-injection`) |More results |More potential vulnerabilities involving NoSQL code operators are now recognized. |
43
+
|Expression has no effect (`js/useless-expression`) |Fewer results | This query no longer flags an expression when that expression is the only content of the containing file. |
43
44
| Incomplete URL scheme check (`js/incomplete-url-scheme-check`) | More results | This query now recognizes additional url scheme checks. |
45
+
| Misspelled variable name (`js/misspelled-variable-name`) | Message changed | The message for this query now correctly identifies the misspelled variable in additional cases. |
44
46
| Prototype pollution in utility function (`js/prototype-pollution-utility`) | More results | This query now recognizes additional utility functions as vulnerable to prototype polution. |
45
-
| Expression has no effect (`js/useless-expression`) | Less results | This query no longer flags an expression when that expression is the only content of the containing file. |
46
-
| Unknown directive (`js/unknown-directive`) | Less results | This query no longer flags directives generated by the Babel compiler. |
47
-
| Code injection (`js/code-injection`) | More results | More potential vulnerabilities involving NoSQL code operators are now recognized. |
47
+
| Prototype pollution in utility function (`js/prototype-pollution-utility`) | More results | This query now recognizes more coding patterns that are vulnerable to prototype pollution. |
48
+
| Uncontrolled command line (`js/command-line-injection`) | More results | This query now recognizes additional command execution calls. |
49
+
| Uncontrolled data used in path expression (`js/path-injection`) | More results | This query now recognizes additional file system calls. |
50
+
| Unknown directive (`js/unknown-directive`) | Fewer results | This query no longer flags directives generated by the Babel compiler. |
51
+
| Unused property (`js/unused-property`) | Fewer results | This query no longer flags properties of objects that are operands of `yield` expressions. |
48
52
| Zip Slip (`js/zipslip`) | More results | This query now recognizes additional vulnerabilities. |
49
-
| Unused property (`js/unused-property`) | Less results | This query no longer flags properties of objects that are operands of `yield` expressions. |
50
-
| Client-side cross-site scripting (`js/xss`) | Less results | This query no longer flags optionally sanitized values. |
51
53
52
54
The following low-precision queries are no longer run by default on LGTM (their results already were not displayed):
53
55
54
56
-`js/angular/dead-event-listener`
55
57
-`js/angular/unused-dependency`
56
-
-`js/conflicting-html-attribute`
57
-
-`js/useless-assignment-to-global`
58
-
-`js/too-many-parameters`
59
-
-`js/unused-property`
60
58
-`js/bitwise-sign-check`
61
59
-`js/comparison-of-identical-expressions`
62
-
-`js/misspelled-identifier`
60
+
-`js/conflicting-html-attribute`
61
+
-`js/ignored-setter-parameter`
63
62
-`js/jsdoc/malformed-param-tag`
64
-
-`js/jsdoc/unknown-parameter`
65
63
-`js/jsdoc/missing-parameter`
66
-
-`js/omitted-array-element`
67
-
-`js/ignored-setter-parameter`
64
+
-`js/jsdoc/unknown-parameter`
68
65
-`js/json-in-javascript-file`
66
+
-`js/misspelled-identifier`
67
+
-`js/nested-loops-with-same-variable`
69
68
-`js/node/cyclic-import`
70
69
-`js/node/unused-npm-dependency`
71
-
-`js/single-run-loop`
72
-
-`js/nested-loops-with-same-variable`
70
+
-`js/omitted-array-element`
73
71
-`js/return-outside-function`
72
+
-`js/single-run-loop`
73
+
-`js/too-many-parameters`
74
+
-`js/unused-property`
75
+
-`js/useless-assignment-to-global`
74
76
75
77
## Changes to libraries
76
78
@@ -80,3 +82,4 @@ The following low-precision queries are no longer run by default on LGTM (their
80
82
-`Parameter.flow()` now gets the correct data flow node for a parameter. Previously this had a result, but the node was disconnected from the data flow graph.
81
83
-`ParameterNode.asExpr()` and `.getAstNode()` now gets the parameter's AST node, whereas previously it had no result.
82
84
-`Expr.flow()` now has a more meaningful result for destructuring patterns. Previously this node was disconnected from the data flow graph. Now it represents the values being destructured by the pattern.
85
+
* The global data-flow and taint-tracking libraries now model indirect parameter accesses through the `arguments` object in some cases, which may lead to additional results from some of the security queries, particularly "Prototype pollution in utility function".
0 commit comments