File tree Expand file tree Collapse file tree 4 files changed +8
-3
lines changed
test/query-tests/Security/CWE-079/DomBasedXss Expand file tree Collapse file tree 4 files changed +8
-3
lines changed Original file line number Diff line number Diff line change @@ -247,7 +247,7 @@ module DOM {
247
247
]
248
248
|
249
249
(
250
- result = documentRef ( ) .getAMethodCall ( collectionName ) or
250
+ result = domValueRef ( ) .getAMethodCall ( collectionName ) or
251
251
result = DataFlow:: globalVarRef ( collectionName ) .getACall ( )
252
252
)
253
253
)
@@ -441,10 +441,12 @@ module DOM {
441
441
DataFlow:: SourceNode domValueRef ( ) {
442
442
result = domValueRef ( DataFlow:: TypeTracker:: end ( ) )
443
443
or
444
- result .hasUnderlyingType ( "Element" )
444
+ result .hasUnderlyingType ( [ "Element" , "HTMLCollection" , "HTMLCollectionOf" ] )
445
445
or
446
446
result .hasUnderlyingType ( any ( string s | s .matches ( "HTML%Element" ) ) )
447
447
or
448
+ result = documentRef ( )
449
+ or
448
450
exists ( DataFlow:: ClassNode cls |
449
451
cls .getASuperClassNode ( ) .getALocalSource ( ) =
450
452
DataFlow:: globalVarRef ( any ( string s | s .matches ( "HTML%Element" ) ) ) and
Original file line number Diff line number Diff line change 53
53
| dates.js:57:31:57:101 | `Time i ... aint)}` | dates.js:54:36:54:55 | window.location.hash | dates.js:57:31:57:101 | `Time i ... aint)}` | Cross-site scripting vulnerability due to $@. | dates.js:54:36:54:55 | window.location.hash | user-provided value |
54
54
| dates.js:59:31:59:87 | `Time i ... aint)}` | dates.js:54:36:54:55 | window.location.hash | dates.js:59:31:59:87 | `Time i ... aint)}` | Cross-site scripting vulnerability due to $@. | dates.js:54:36:54:55 | window.location.hash | user-provided value |
55
55
| dates.js:61:31:61:88 | `Time i ... aint)}` | dates.js:54:36:54:55 | window.location.hash | dates.js:61:31:61:88 | `Time i ... aint)}` | Cross-site scripting vulnerability due to $@. | dates.js:54:36:54:55 | window.location.hash | user-provided value |
56
+ | dom.js:4:20:4:30 | window.name | dom.js:4:20:4:30 | window.name | dom.js:4:20:4:30 | window.name | Cross-site scripting vulnerability due to $@. | dom.js:4:20:4:30 | window.name | user-provided value |
56
57
| dragAndDrop.ts:15:25:15:28 | html | dragAndDrop.ts:8:18:8:50 | dataTra ... /html') | dragAndDrop.ts:15:25:15:28 | html | Cross-site scripting vulnerability due to $@. | dragAndDrop.ts:8:18:8:50 | dataTra ... /html') | user-provided value |
57
58
| dragAndDrop.ts:24:23:24:57 | e.dataT ... /html') | dragAndDrop.ts:24:23:24:57 | e.dataT ... /html') | dragAndDrop.ts:24:23:24:57 | e.dataT ... /html') | Cross-site scripting vulnerability due to $@. | dragAndDrop.ts:24:23:24:57 | e.dataT ... /html') | user-provided value |
58
59
| dragAndDrop.ts:29:19:29:53 | e.dataT ... /html') | dragAndDrop.ts:29:19:29:53 | e.dataT ... /html') | dragAndDrop.ts:29:19:29:53 | e.dataT ... /html') | Cross-site scripting vulnerability due to $@. | dragAndDrop.ts:29:19:29:53 | e.dataT ... /html') | user-provided value |
@@ -937,6 +938,7 @@ nodes
937
938
| dates.js:61:31:61:88 | `Time i ... aint)}` | semmle.label | `Time i ... aint)}` |
938
939
| dates.js:61:42:61:86 | dayjs.s ... (taint) | semmle.label | dayjs.s ... (taint) |
939
940
| dates.js:61:81:61:85 | taint | semmle.label | taint |
941
+ | dom.js:4:20:4:30 | window.name | semmle.label | window.name |
940
942
| dragAndDrop.ts:8:11:8:50 | html | semmle.label | html |
941
943
| dragAndDrop.ts:8:18:8:50 | dataTra ... /html') | semmle.label | dataTra ... /html') |
942
944
| dragAndDrop.ts:15:25:15:28 | html | semmle.label | html |
Original file line number Diff line number Diff line change @@ -138,6 +138,7 @@ nodes
138
138
| dates.js:61:31:61:88 | `Time i ... aint)}` | semmle.label | `Time i ... aint)}` |
139
139
| dates.js:61:42:61:86 | dayjs.s ... (taint) | semmle.label | dayjs.s ... (taint) |
140
140
| dates.js:61:81:61:85 | taint | semmle.label | taint |
141
+ | dom.js:4:20:4:30 | window.name | semmle.label | window.name |
141
142
| dragAndDrop.ts:8:11:8:50 | html | semmle.label | html |
142
143
| dragAndDrop.ts:8:18:8:50 | dataTra ... /html') | semmle.label | dataTra ... /html') |
143
144
| dragAndDrop.ts:15:25:15:28 | html | semmle.label | html |
Original file line number Diff line number Diff line change 1
1
function t1 ( ) {
2
2
const elm = document . getElementById ( "foo" ) ;
3
3
const e2 = elm . getElementsByTagName ( "bar" ) [ 0 ] ;
4
- e2 . innerHTML = window . name ; // $ MISSING: Alert
4
+ e2 . innerHTML = window . name ; // $ Alert
5
5
}
You can’t perform that action at this time.
0 commit comments