File tree Expand file tree Collapse file tree 5 files changed +19
-4
lines changed
lib/semmle/javascript/security
test/query-tests/Security/CWE-020/SuspiciousRegexpRange
java/ql/lib/semmle/code/java/security
python/ql/lib/semmle/python/security
ruby/ql/lib/codeql/ruby/security Expand file tree Collapse file tree 5 files changed +19
-4
lines changed Original file line number Diff line number Diff line change @@ -96,7 +96,10 @@ class OverlyWideRange extends RegExpCharacterRange {
9696 toCodePoint ( "A" ) <= high
9797 or
9898 // a non-alphanumeric char as part of the range boundaries
99- exists ( int bound | bound = [ low , high ] | not isAlphanumeric ( bound .toUnicode ( ) ) )
99+ exists ( int bound | bound = [ low , high ] | not isAlphanumeric ( bound .toUnicode ( ) ) ) and
100+ // while still being ascii
101+ low < 128 and
102+ high < 128
100103 ) and
101104 // allowlist for known ranges
102105 not this = allowedWideRanges ( )
Original file line number Diff line number Diff line change @@ -96,7 +96,10 @@ class OverlyWideRange extends RegExpCharacterRange {
9696 toCodePoint ( "A" ) <= high
9797 or
9898 // a non-alphanumeric char as part of the range boundaries
99- exists ( int bound | bound = [ low , high ] | not isAlphanumeric ( bound .toUnicode ( ) ) )
99+ exists ( int bound | bound = [ low , high ] | not isAlphanumeric ( bound .toUnicode ( ) ) ) and
100+ // while still being ascii
101+ low < 128 and
102+ high < 128
100103 ) and
101104 // allowlist for known ranges
102105 not this = allowedWideRanges ( )
Original file line number Diff line number Diff line change @@ -25,3 +25,6 @@ var numberToLetter = /[7-F]/; // NOT OK
2525var overlapsWithClass1 = / [ 0 - 9 \d ] / ; // NOT OK
2626
2727var overlapsWithClass2 = / [ \w , . - ? : * + ] / ; // NOT OK
28+
29+ var tst2 = / ^ ( [ ァ - ヾ ] | [ ァ - ン ゙ ゚ ] ) + $ / ; // OK
30+ var tst3 = / [ 0 - 9 0 - 9 ] / ; // OK
Original file line number Diff line number Diff line change @@ -96,7 +96,10 @@ class OverlyWideRange extends RegExpCharacterRange {
9696 toCodePoint ( "A" ) <= high
9797 or
9898 // a non-alphanumeric char as part of the range boundaries
99- exists ( int bound | bound = [ low , high ] | not isAlphanumeric ( bound .toUnicode ( ) ) )
99+ exists ( int bound | bound = [ low , high ] | not isAlphanumeric ( bound .toUnicode ( ) ) ) and
100+ // while still being ascii
101+ low < 128 and
102+ high < 128
100103 ) and
101104 // allowlist for known ranges
102105 not this = allowedWideRanges ( )
Original file line number Diff line number Diff line change @@ -96,7 +96,10 @@ class OverlyWideRange extends RegExpCharacterRange {
9696 toCodePoint ( "A" ) <= high
9797 or
9898 // a non-alphanumeric char as part of the range boundaries
99- exists ( int bound | bound = [ low , high ] | not isAlphanumeric ( bound .toUnicode ( ) ) )
99+ exists ( int bound | bound = [ low , high ] | not isAlphanumeric ( bound .toUnicode ( ) ) ) and
100+ // while still being ascii
101+ low < 128 and
102+ high < 128
100103 ) and
101104 // allowlist for known ranges
102105 not this = allowedWideRanges ( )
You can’t perform that action at this time.
0 commit comments