Skip to content

Commit f99a335

Browse files
committed
add support for the safe-stable-stringify library
1 parent d6300bc commit f99a335

File tree

4 files changed

+6
-2
lines changed

4 files changed

+6
-2
lines changed

javascript/change-notes/2021-06-24-json.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,5 @@ lgtm,codescanning
66
[prettyjson](https://npmjs.com/package/prettyjson),
77
[flatted](https://npmjs.com/package/flatted),
88
[teleport-javascript](https://npmjs.com/package/teleport-javascript),
9-
[replicator](https://npmjs.com/package/replicator)
9+
[replicator](https://npmjs.com/package/replicator),
10+
[safe-stable-stringify](https://npmjs.com/package/safe-stable-stringify)

javascript/ql/src/semmle/javascript/JsonStringifiers.qll

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ class JsonStringifyCall extends DataFlow::CallNode {
1818
DataFlow::moduleImport([
1919
"json-stringify-safe", "json-stable-stringify", "stringify-object",
2020
"fast-json-stable-stringify", "fast-safe-stringify", "javascript-stringify",
21-
"js-stringify"
21+
"js-stringify", "safe-stable-stringify"
2222
]) or
2323
// require("util").inspect() and similar
2424
callee = DataFlow::moduleMember("util", "inspect") or

javascript/ql/test/library-tests/TaintTracking/BasicTaintTracking.expected

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,7 @@ typeInferenceMismatch
9595
| json-stringify.js:2:16:2:23 | source() | json-stringify.js:27:8:27:47 | flatted ... ource)) |
9696
| json-stringify.js:2:16:2:23 | source() | json-stringify.js:30:8:30:49 | telepor ... ource)) |
9797
| json-stringify.js:2:16:2:23 | source() | json-stringify.js:34:8:34:51 | replica ... ource)) |
98+
| json-stringify.js:2:16:2:23 | source() | json-stringify.js:36:8:36:47 | require ... source) |
9899
| json-stringify.js:3:15:3:22 | source() | json-stringify.js:8:8:8:31 | jsonStr ... (taint) |
99100
| nested-props.js:4:13:4:20 | source() | nested-props.js:5:10:5:14 | obj.x |
100101
| nested-props.js:9:18:9:25 | source() | nested-props.js:10:10:10:16 | obj.x.y |

javascript/ql/test/library-tests/TaintTracking/json-stringify.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,4 +32,6 @@ function foo() {
3232
const Replicator = require('replicator');
3333
const replicator = new Replicator();
3434
sink(replicator.encode(replicator.decode(source))); // NOT OK
35+
36+
sink(require("safe-stable-stringify")(source)); // NOT OK
3537
}

0 commit comments

Comments
 (0)