Skip to content

Commit d03aeca

Browse files
authored
Merge pull request #2235 from max-schaefer/js/issue-2233
Approved by esbena
2 parents 2a39802 + 311cbd8 commit d03aeca

File tree

3 files changed

+7
-0
lines changed

3 files changed

+7
-0
lines changed

change-notes/1.23/analysis-javascript.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@
4444
| Stored cross-site scripting (`js/stored-xss`) | Fewer false-positive results | The query now recognizes more sanitizers. |
4545
| Uncontrolled command line (`js/command-line-injection`) | More results | This query now treats responses from servers as untrusted. |
4646
| Uncontrolled data used in path expression (`js/path-injection`) | Fewer false-positive results | This query now recognizes calls to Express `sendFile` as safe in some cases. |
47+
| Unknown directive (`js/unknown-directive`) | Fewer false positive results | This query no longer flags uses of ":", which is sometimes used like a directive. |
4748

4849
## Changes to QL libraries
4950

javascript/ql/src/Expressions/UnknownDirective.ql

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@ import javascript
1313
from Directive d
1414
where
1515
not d instanceof KnownDirective and
16+
// ignore ":" pseudo-directive sometimes seen in dual-use shell/node.js scripts
17+
not d.getExpr().getStringValue() = ":" and
1618
// but exclude attribute top-levels: `<a href="javascript:'some-attribute-string'">`
1719
not d.getParent() instanceof CodeInAttribute
1820
select d, "Unknown directive: '" + truncate(d.getDirectiveText(), 20, " ... (truncated)") + "'."
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
#!/bin/sh
2+
":" //# ; exec /usr/bin/env node "$0" "$@"
3+
4+
console.log('javascript');

0 commit comments

Comments
 (0)