Asger F
e2b0ec5696
JS: Handle multiple and/or operators in SanitizerFunction
2019-11-01 15:23:38 +00:00
semmle-qlci
e8e2f7bb20
Merge pull request #2240 from max-schaefer/js/indirect-command-argument-data-flow
...
Approved by esbena
2019-11-01 11:00:22 +00:00
semmle-qlci
d03aecaa98
Merge pull request #2235 from max-schaefer/js/issue-2233
...
Approved by esbena
2019-10-31 14:17:58 +00:00
Max Schaefer
03c9a40ba3
JavaScript: Add libraries for forward and backward data-flow exploration.
2019-10-31 12:37:31 +00:00
Max Schaefer
8aae1f443f
JavaScript: Use type tracking instead of auxiliary data-flow configuration to track indirect command arguments.
2019-10-31 12:13:55 +00:00
Max Schaefer
311cbd824c
JavaScript: Recognize ":" pseudo-directive.
2019-10-31 11:39:09 +00:00
semmle-qlci
2a3980222b
Merge pull request #2201 from max-schaefer/js/avoid-duplicate-source-and-sink-nodes
...
Approved by asger-semmle
2019-10-31 10:47:30 +00:00
Max Schaefer
3bbded57d3
JavaScript: Autoformat.
2019-10-30 14:49:18 +00:00
Max Schaefer
bb0771b36c
JavaScript: Deal with escape-unescape-escape (and similar) chains.
2019-10-30 14:49:01 +00:00
Max Schaefer
8c133ff61d
JavaScript: Deal with (un-)escaping on captured variables.
2019-10-30 14:46:50 +00:00
Max Schaefer
a8214ce7ee
JavaScript: Fix regexes for escaping schemes.
2019-10-30 14:15:59 +00:00
Max Schaefer
5349e0f881
JavaScript: Recognise wrapped chains of replacements.
2019-10-30 13:14:38 +00:00
Max Schaefer
02d16b1dc9
JavaScript: Recognise wrapped string replacement functions.
2019-10-30 13:01:17 +00:00
Max Schaefer
aaeca32519
JavaScript: Recognize string escaping using .replace with a callback.
2019-10-30 12:45:32 +00:00
Max Schaefer
bd1c99d8a4
JavaScript: Recognise JSON.stringify and JSON.parse as escaper/unescaper.
2019-10-30 12:38:05 +00:00
semmle-qlci
a778efe71e
Merge pull request #2216 from asger-semmle/xss-encodeURIComponent
...
Approved by max-schaefer
2019-10-30 11:49:31 +00:00
Max Schaefer
63f24476e9
JavaScript: Refactor DoubleEscaping.ql.
2019-10-30 10:59:14 +00:00
Luke Cartey
d9d4aa30a9
Merge pull request #2214 from hmakholm/pr/upgrade-packs
...
Make each upgrade directory a QL pack
2019-10-29 16:45:02 +00:00
Max Schaefer
b42026a90a
JavaScript: Update expected output.
2019-10-29 15:36:24 +00:00
Max Schaefer
530fa2c11c
JavaScript: Collapse edges instead of hiding nodes.
...
Instead of skipping over initial and final nodes, we now introduce edges from source and to sink nodes that circumvent these nodes entirely.
2019-10-29 15:30:24 +00:00
Max Schaefer
dc1d1c2f22
JavaScript: Update expected output.
2019-10-29 15:30:06 +00:00
Max Schaefer
278ea90049
JavaScript: Collapse flow labels at start/end nodes to avoid duplication.
2019-10-29 15:24:40 +00:00
Max Schaefer
316962233c
JavaScript: Factor out MidPathNode into its own class.
2019-10-29 15:24:40 +00:00
Max Schaefer
7c56c9f999
JavaScript: Move suppression of hidden nodes into edges predicate.
...
They should really only be hidden for display purposes.
2019-10-29 15:19:26 +00:00
Max Schaefer
3373742077
JavaScript: Turn PathNode::getASuccessorInternal and PathNode::getAHiddenSuccessor into top-level predicates.
2019-10-29 15:19:26 +00:00
Max Schaefer
b6f4785645
JavaScript: Rename MkPathNode to MkMidNode.
2019-10-29 15:19:26 +00:00
Max Schaefer
d71faaa5f9
JavaScript: Introduce PathNode::wraps.
2019-10-29 15:19:26 +00:00
Max Schaefer
98e0932de5
JavaScript: Make Configuration::isLive nullary.
...
This makes it more obvious to the evaluator that it is a good predicate to pick as a sentinel, and in practice we mostly just have one configuration in scope anyway.
2019-10-29 15:19:26 +00:00
Max Schaefer
6964945c74
JavaScript: Restrict edges to only contain nodes.
2019-10-29 15:03:52 +00:00
Erik Krogh Kristensen
2d01e7c5ed
simplify the callsArray predicate
2019-10-29 12:13:01 +01:00
Erik Krogh Kristensen
563f32193c
suggestions from @max-schaefer
...
Co-Authored-By: Max Schaefer <54907921+max-schaefer@users.noreply.github.com >
2019-10-29 12:10:12 +01:00
semmle-qlci
2cddb82f10
Merge pull request #2210 from max-schaefer/js/better-destructuring-type-inference
...
Approved by asger-semmle, esbena
2019-10-29 08:08:51 +00:00
Asger F
94dd9a1c04
JS: Block XSS flow through encodeURIComponent
2019-10-28 17:12:40 +00:00
Henning Makholm
ae554cf1e9
Make each upgrade directory a QL pack
2019-10-28 17:14:31 +01:00
semmle-qlci
30a907861b
Merge pull request #2193 from max-schaefer/js/autobuilder-exclude-node_modules
...
Approved by asger-semmle
2019-10-28 11:26:51 +00:00
semmle-qlci
33374ee089
Merge pull request #2202 from asger-semmle/express-sendfile
...
Approved by esbena
2019-10-28 09:24:34 +00:00
Max Schaefer
b333c6a214
Merge pull request #2106 from asger-semmle/call-graph-3
...
JS: Call graph changes
2019-10-28 09:24:10 +00:00
Erik Krogh Kristensen
b2c31701f3
add documentation to two predicates
2019-10-27 09:12:56 +01:00
Erik Krogh Kristensen
92cebea235
update tests to include empty reciever case
2019-10-27 00:25:59 +02:00
Erik Krogh Kristensen
c6f53199d4
ignore when the reciever is the empty array
2019-10-27 00:24:38 +02:00
Erik Krogh Kristensen
da23898eba
update tests
2019-10-26 23:26:45 +02:00
Erik Krogh Kristensen
841dac1aba
address review feedback
2019-10-25 17:46:55 +02:00
semmle-qlci
d2f3574427
Merge pull request #2165 from erik-krogh/dosHigh
...
Approved by asger-semmle
2019-10-25 16:28:07 +01:00
Erik Krogh Kristensen
5b26d03f1c
introduce backtracking, and also marking join/slice calls
2019-10-25 16:50:09 +02:00
Max Schaefer
d4b9beb010
JavaScript: Teach autobuilder not to extract node_modules and bower_components folders.
2019-10-25 14:25:02 +01:00
Max Schaefer
bd6109484d
JavaScript: Rename node_modules to vendor in AutoBuildTests.
2019-10-25 14:25:02 +01:00
Max Schaefer
89f68f47a0
JavaScript: Improve type inference for captured variables.
2019-10-25 14:22:24 +01:00
Max Schaefer
6269dd99ab
JavaScript: Improve type inference for destructuring assignments.
2019-10-25 14:22:24 +01:00
Asger F
04ee483c9e
JS: update test output
2019-10-25 14:10:18 +01:00
Asger F
7ed31baeea
JS: Rename to upward navigation
2019-10-25 13:07:07 +01:00