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
|*@name of query (Query ID)*|*Tags*|*Aim of the new query and whether it is enabled by default or not*|
59
+
|Information exposure through an exception (`py/stack-trace-exposure`)|security, external/cwe/cwe-209, external/cwe/cwe-497 | Finds instances where information about an exception may be leaked to an external user. Enabled on LGTM by default.|
14
60
15
61
## Changes to existing queries
16
62
@@ -19,20 +65,30 @@ Most security alerts are now visible on LGTM by default.
| Assert statement tests the truth value of a literal constant (`py/assert-literal-constant`) | reliability, correctness | Checks whether an assert statement is testing the truth of a literal constant value. Not shown by default. |
22
69
| Code injection (`py/code-injection`) | Supports path visualization and is now visible on LGTM by default | No change to expected results |
23
70
| Deserializing untrusted input (`py/unsafe-deserialization`) | Supports path visualization | No change to expected results |
24
-
| Information exposure through an exception (`py/stack-trace-exposure`) | Now visible on LGTM by default | No change to expected results |
71
+
| Encoding error (`py/encoding-error`) | Better alert location | Alert is now shown at the position of the first offending character, rather than at the top of the file. |
72
+
| Missing call to \_\_init\_\_ during object initialization (`py/missing-call-to-init`) | Fewer false positive results | Results where it is likely that the full call chain has not been analyzed are no longer reported. |
25
73
| Reflected server-side cross-site scripting (`py/reflective-xss`) | Supports path visualization and is now visible on LGTM by default | No change to expected results |
26
74
| SQL query built from user-controlled sources (`py/sql-injection`) | Supports path visualization and is now visible on LGTM by default | No change to expected results |
27
75
| Uncontrolled data used in path expression (`py/path-injection`) | Supports path visualization and is now visible on LGTM by default | No change to expected results |
28
76
| Uncontrolled command line (`py/command-line-injection`) | Supports path visualization and is now visible on LGTM by default | No change to expected results |
29
-
| URL redirection from remote source (`py/url-redirection`) | Supports path visualization and is now visible on LGTM by default | No change to expected results |
77
+
| URL redirection from remote source (`py/url-redirection`) | Fewer false positive results and now supports path visualization | Taint is no longer tracked from the right hand side of binary expressions. In other words `SAFE + TAINTED` is now treated as safe. |
78
+
30
79
31
80
## Changes to code extraction
32
81
33
-
**Series of bullet points*
82
+
* Improved scalability: Scaling is near linear to at least 20 CPU cores.
83
+
* Five levels of logging can be selected: `CRITICAL`, `ERROR`, `WARN`, `INFO` and `DEBUG`. `WARN` is the default.
84
+
* The `-v` flag can be specified twice to increase logging level to `DEBUG`
85
+
* The `-q` flag has been added to reduce the logging level to `ERROR` or `CRITICAL`
86
+
* Log lines are now in the `[SEVERITY] message` style and never overlap.
87
+
* Extractor now outputs the location of the first offending character when an EncodingError is encountered.
34
88
35
89
## Changes to QL libraries
36
90
37
-
**Series of bullet points*
91
+
*Taint tracking analysis now understands HTTP requests in the `twisted` library.
38
92
93
+
* The analysis now handles `isinstance` and `issubclass` tests involving the basic abstract base classes better. For example, the test `issubclass(list, collections.Sequence)` is now understood to be `True`
94
+
* Taint tracking automatically tracks tainted mappings and collections, without you having to add additional taint kinds. This means that custom taints are tracked from `x` to `y` in the following flow: `l = [x]; y =l[0]`.
0 commit comments