|
4 | 4 |
|
5 | 5 | * Modelling of taint flow through array operations has been improved. This may give additional results for the security queries. |
6 | 6 |
|
7 | | -* The taint tracking library now recognizes additional sanitization patterns. This may give fewer false-positive results for the security queries. |
8 | | - |
9 | 7 | * Support for AMD modules has been improved. This may give additional results for the security queries as well as any queries that use type inference on code bases that use such modules. |
10 | 8 |
|
11 | 9 | * Support for popular libraries has been improved. Consequently, queries may produce more results on code bases that use the following features: |
12 | 10 | - file system access, for example through [fs-extra](https://github.com/jprichardson/node-fs-extra) or [globby](https://www.npmjs.com/package/globby) |
13 | 11 | - outbound network access, for example through the [fetch API](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API) |
14 | 12 | - the [lodash](https://lodash.com), [underscore](https://underscorejs.org/), [async](https://www.npmjs.com/package/async) and [async-es](https://www.npmjs.com/package/async-es) libraries |
15 | 13 |
|
| 14 | +* The taint tracking library now recognizes additional sanitization patterns. This may give fewer false-positive results for the security queries. |
| 15 | + |
16 | 16 | * Type inference for function calls has been improved. This may give additional results for queries that rely on type inference. |
17 | 17 |
|
18 | 18 | * Where applicable, path explanations have been added to the security queries. |
|
35 | 35 |
|
36 | 36 | | **Query** | **Expected impact** | **Change** | |
37 | 37 | |--------------------------------|----------------------------|----------------------------------------------| |
| 38 | +| Ambiguous HTML id attribute | Lower severity | The severity of this rule has been revised to "warning". | |
38 | 39 | | Client side cross-site scripting | More results | This rule now also flags HTML injection in the body of an email. | |
| 40 | +| Client-side URL redirect | Fewer false-positive results | This rule now recognizes safe redirects in more cases. | |
| 41 | +| Conflicting HTML element attributes | Lower severity | The severity of this rule has been revised to "warning". | |
| 42 | +| Duplicate 'if' condition | Lower severity | The severity of this rule has been revised to "warning". | |
| 43 | +| Duplicate switch case | Lower severity | The severity of this rule has been revised to "warning". | |
39 | 44 | | Information exposure through a stack trace | More results | This rule now also flags cases where the entire exception object (including the stack trace) may be exposed. | |
40 | 45 | | Missing CSRF middleware | Fewer false-positive results | This rule now recognizes additional CSRF protection middlewares. | |
| 46 | +| Missing variable declaration | Lower severity | The severity of this rule has been revised to "warning". | |
41 | 47 | | Regular expression injection | Fewer false-positive results | This rule now identifies calls to `String.prototype.search` with more precision. | |
42 | 48 | | Remote property injection | Fewer results | The precision of this rule has been revised to "medium". Results are no longer shown on LGTM by default. | |
43 | 49 | | Self assignment | Fewer false-positive results | This rule now ignores self-assignments preceded by a JSDoc comment with a `@type` tag. | |
| 50 | +| Server-side URL redirect | Fewer false-positive results | This rule now recognizes safe redirects in more cases. | |
44 | 51 | | Server-side URL redirect | More results | This rule now recognizes redirection calls in more cases. | |
45 | 52 | | Unbound event handler receiver | Fewer false-positive results | This rule now recognizes additional ways class methods can be bound. | |
46 | 53 | | Uncontrolled data used in remote request | More results | This rule now recognizes additional kinds of requests. | |
|
49 | 56 | | Unused variable, import, function or class | Fewer results | This rule now flags import statements with multiple unused imports once. | |
50 | 57 | | Useless assignment to local variable | Fewer false-positive results | This rule now recognizes additional ways default values can be set. | |
51 | 58 | | Whitespace contradicts operator precedence | Fewer false-positive results | This rule no longer flags operators with asymmetric whitespace. | |
52 | | -| Client-side URL redirect | Fewer false-positive results | This rule now recognizes safe redirects in more cases. | |
53 | | -| Server-side URL redirect | Fewer false-positive results | This rule now recognizes safe redirects in more cases. | |
54 | 59 |
|
55 | 60 | ## Changes to QL libraries |
56 | 61 |
|
57 | | -* The flow configuration framework now supports distinguishing and tracking different kinds of taint, specified by an extensible class `FlowLabel` (which can also be referred to by its alias `TaintKind`). |
58 | | - |
59 | | -* The `DataFlow::ThisNode` class now corresponds to the implicit receiver parameter of a function, as opposed to an indivdual `this` expression. This means `getALocalSource` now maps all `this` expressions within a given function to the same source. The data-flow node associated with a `ThisExpr` can no longer be cast to `DataFlow::SourceNode` or `DataFlow::ThisNode` - it is recomended to use `getALocalSource` before casting or instead of casting. |
| 62 | +* A `DataFlow::ParameterNode` instance now exists for all function parameters. Previously, unused parameters did not have a corresponding dataflow node. |
60 | 63 |
|
61 | 64 | * `ReactComponent::getAThisAccess` has been renamed to `getAThisNode`. The old name is still usable but is deprecated. It no longer gets individual `this` expressions, but the `ThisNode` mentioned above. |
62 | 65 |
|
63 | | -* A `DataFlow::ParameterNode` instance now exists for all function parameters. Previously, unused parameters did not have a corresponding dataflow node. |
| 66 | +* The `DataFlow::ThisNode` class now corresponds to the implicit receiver parameter of a function, as opposed to an indivdual `this` expression. This means `getALocalSource` now maps all `this` expressions within a given function to the same source. The data-flow node associated with a `ThisExpr` can no longer be cast to `DataFlow::SourceNode` or `DataFlow::ThisNode` - it is recomended to use `getALocalSource` before casting or instead of casting. |
| 67 | + |
| 68 | +* The flow configuration framework now supports distinguishing and tracking different kinds of taint, specified by an extensible class `FlowLabel` (which can also be referred to by its alias `TaintKind`). |
0 commit comments