Skip to content

Commit 4cfe63f

Browse files
committed
JS: Now BadHtmlSanitizers also flags new RegExp as potential issue
1 parent 1c9e319 commit 4cfe63f

File tree

3 files changed

+5
-2
lines changed

3 files changed

+5
-2
lines changed

javascript/ql/lib/semmle/javascript/security/IncompleteBlacklistSanitizer.qll

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ private StringReplaceCall getAStringReplaceMethodCall(StringReplaceCall n) {
7474
module HtmlSanitization {
7575
private predicate fixedGlobalReplacement(StringReplaceCallSequence chain) {
7676
forall(StringReplaceCall member | member = chain.getAMember() |
77-
member.isGlobal() and member.getArgument(0) instanceof DataFlow::RegExpLiteralNode
77+
member.isGlobal() and member.getArgument(0) instanceof DataFlow::RegExpCreationNode
7878
)
7979
}
8080

javascript/ql/test/query-tests/Security/CWE-116/IncompleteSanitization/IncompleteBlacklistSanitizer.expected

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,3 +65,6 @@
6565
| tst.js:305:10:305:34 | s().rep ... ]/g,'') | This HTML sanitizer does not sanitize double quotes |
6666
| tst.js:309:10:318:3 | s().rep ... ;";\\n\\t}) | This HTML sanitizer does not sanitize single quotes |
6767
| tst.js:320:9:329:3 | s().rep ... ;";\\n\\t}) | This HTML sanitizer does not sanitize single quotes |
68+
| tst.js:333:2:333:40 | s().rep ... g"),'') | This HTML sanitizer does not sanitize ampersands |
69+
| tst.js:333:2:333:40 | s().rep ... g"),'') | This HTML sanitizer does not sanitize double quotes |
70+
| tst.js:333:2:333:40 | s().rep ... g"),'') | This HTML sanitizer does not sanitize single quotes |

javascript/ql/test/query-tests/Security/CWE-116/IncompleteSanitization/tst.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -330,5 +330,5 @@ function incompleteComplexSanitizers() {
330330
}
331331

332332
function typicalBadHtmlSanitizers(s) {
333-
s().replace(new RegExp("[<>]", "g"),''); // NOT OK -- should be not okay, but is not flagged
333+
s().replace(new RegExp("[<>]", "g"),''); // NOT OK
334334
}

0 commit comments

Comments
 (0)