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.24/analysis-cpp.md
+4Lines changed: 4 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -26,6 +26,10 @@ The following changes in version 1.24 affect C/C++ analysis in all applications.
26
26
27
27
## Changes to libraries
28
28
29
+
* The data-flow library has been improved when flow through functions needs to be
30
+
combined with both taint tracking and flow through fields allowing more flow
31
+
to be tracked. This affects and improves some security queries, which may
32
+
report additional results.
29
33
* 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.
30
34
* 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.
31
35
* The new class `StackVariable` should be used in place of `LocalScopeVariable`
| Useless assignment to local variable (`cs/useless-assignment-to-local`) | Fewer false positive results | Results have been removed when the variable is named `_` in a `foreach` statement. |
21
+
| Potentially dangerous use of non-short-circuit logic (`cs/non-short-circuit`) | Fewer false positive results | Results have been removed when the expression contains an `out` parameter. |
21
22
| Dereferenced variable may be null (`cs/dereferenced-value-may-be-null`) | More results | Results are reported from parameters with a default value of `null`. |
22
23
23
24
## Removal of old queries
@@ -29,6 +30,10 @@ The following changes in version 1.24 affect C# analysis in all applications.
29
30
30
31
## Changes to libraries
31
32
33
+
* The data-flow library has been improved when flow through methods needs to be
34
+
combined with both taint tracking and flow through fields allowing more flow
35
+
to be tracked. This affects and improves most security queries, which may
36
+
report additional results.
32
37
* The taint tracking library now tracks flow through (implicit or explicit) conversion operator calls.
33
38
*[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.
34
39
* Expression nullability flow state is given by the predicates `Expr.hasNotNullFlowState()` and `Expr.hasMaybeNullFlowState()`.
| Disabled Spring CSRF protection (`java/spring-disabled-csrf-protection`) | security, external/cwe/cwe-352 | Finds disabled Cross-Site Request Forgery (CSRF) protection in Spring. |
13
+
| Disabled Spring CSRF protection (`java/spring-disabled-csrf-protection`) | security, external/cwe/cwe-352 | Finds disabled Cross-Site Request Forgery (CSRF) protection in Spring. Results are shown on LGTM by default. |
14
14
| Failure to use HTTPS or SFTP URL in Maven artifact upload/download (`java/maven/non-https-url`) | security, external/cwe/cwe-300, external/cwe/cwe-319, external/cwe/cwe-494, external/cwe/cwe-829 | Finds use of insecure protocols during Maven dependency resolution. Results are shown on LGTM by default. |
15
+
| LDAP query built from user-controlled sources (`java/ldap-injection`) | security, external/cwe/cwe-090 | Finds LDAP queries vulnerable to injection of unsanitized user-controlled input. Results are shown on LGTM by default. |
15
16
| Left shift by more than the type width (`java/lshift-larger-than-type-width`) | correctness | Finds left shifts of ints by 32 bits or more and left shifts of longs by 64 bits or more. Results are shown on LGTM by default. |
16
-
| Suspicious date format (`java/suspicious-date-format`) | correctness | Finds date format patterns that use placeholders that are likely to be incorrect. |
17
+
| Suspicious date format (`java/suspicious-date-format`) | correctness | Finds date format patterns that use placeholders that are likely to be incorrect. Results are shown on LGTM by default. |
17
18
18
19
## Changes to existing queries
19
20
@@ -25,10 +26,17 @@ The following changes in version 1.24 affect Java analysis in all applications.
25
26
26
27
## Changes to libraries
27
28
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.
28
33
* Identification of test classes has been improved. Previously, one of the
29
34
match conditions would classify any class with a name containing the string
30
35
"Test" as a test class, but now this matching has been replaced with one that
31
36
looks for the occurrence of actual unit-test annotations. This affects the
32
37
general file classification mechanism and thus suppression of alerts, and
33
38
also any security queries using taint tracking, as test classes act as
34
39
default barriers stopping taint flow.
40
+
* Parentheses are now no longer modelled directly in the AST, that is, the
41
+
`ParExpr` class is empty. Instead, a parenthesized expression can be
42
+
identified with the `Expr.isParenthesized()` member predicate.
| Expression has no effect (`js/useless-expression`) | Fewer false positive results | The query now recognizes block-level flow type annotations and ignores the first statement of a try block. |
40
43
| 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. |
41
44
| 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. |
45
+
| Uncontrolled data used in path expression (`js/path-injection`) | More results | This query now recognizes additional ways dangerous paths can be constructed. |
0 commit comments