Skip to content

Commit 1443f31

Browse files
committed
Added react-relay useFragment as threat model source.
1 parent 1e3b862 commit 1443f31

File tree

3 files changed

+16
-2
lines changed

3 files changed

+16
-2
lines changed
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
extensions:
2+
- addsTo:
3+
pack: codeql/javascript-all
4+
extensible: sourceModel
5+
data:
6+
- ["react-relay", "Member[useFragment].ReturnValue", "response"]

javascript/ql/test/query-tests/Security/CWE-079/DomBasedXssWithResponseThreat/Xss.expected

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
#select
22
| test.jsx:27:29:27:32 | data | test.jsx:5:28:5:63 | fetch(" ... ntent") | test.jsx:27:29:27:32 | data | Cross-site scripting vulnerability due to $@. | test.jsx:5:28:5:63 | fetch(" ... ntent") | user-provided value |
3+
| testReactRelay.tsx:19:47:19:62 | commentData.text | testReactRelay.tsx:5:23:13:3 | useFrag ... Ref\\n ) | testReactRelay.tsx:19:47:19:62 | commentData.text | Cross-site scripting vulnerability due to $@. | testReactRelay.tsx:5:23:13:3 | useFrag ... Ref\\n ) | user-provided value |
34
edges
45
| test.jsx:5:11:5:63 | response | test.jsx:6:24:6:31 | response | provenance | |
56
| test.jsx:5:22:5:63 | await f ... ntent") | test.jsx:5:11:5:63 | response | provenance | |
@@ -10,6 +11,9 @@ edges
1011
| test.jsx:6:24:6:38 | response.json() | test.jsx:6:18:6:38 | await r ... .json() | provenance | |
1112
| test.jsx:7:12:7:15 | data | test.jsx:15:11:17:5 | data | provenance | |
1213
| test.jsx:15:11:17:5 | data | test.jsx:27:29:27:32 | data | provenance | |
14+
| testReactRelay.tsx:5:9:13:3 | commentData | testReactRelay.tsx:19:47:19:57 | commentData | provenance | |
15+
| testReactRelay.tsx:5:23:13:3 | useFrag ... Ref\\n ) | testReactRelay.tsx:5:9:13:3 | commentData | provenance | |
16+
| testReactRelay.tsx:19:47:19:57 | commentData | testReactRelay.tsx:19:47:19:62 | commentData.text | provenance | |
1317
nodes
1418
| test.jsx:5:11:5:63 | response | semmle.label | response |
1519
| test.jsx:5:22:5:63 | await f ... ntent") | semmle.label | await f ... ntent") |
@@ -21,4 +25,8 @@ nodes
2125
| test.jsx:7:12:7:15 | data | semmle.label | data |
2226
| test.jsx:15:11:17:5 | data | semmle.label | data |
2327
| test.jsx:27:29:27:32 | data | semmle.label | data |
28+
| testReactRelay.tsx:5:9:13:3 | commentData | semmle.label | commentData |
29+
| testReactRelay.tsx:5:23:13:3 | useFrag ... Ref\\n ) | semmle.label | useFrag ... Ref\\n ) |
30+
| testReactRelay.tsx:19:47:19:57 | commentData | semmle.label | commentData |
31+
| testReactRelay.tsx:19:47:19:62 | commentData.text | semmle.label | commentData.text |
2432
subpaths

javascript/ql/test/query-tests/Security/CWE-079/DomBasedXssWithResponseThreat/testReactRelay.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,13 @@ const CommentComponent = ({ commentRef }) => {
1010
}
1111
`,
1212
commentRef
13-
); // $ MISSING: Source=[js/xss]
13+
); // $ Source=[js/xss]
1414

1515
return (
1616
<div>
1717
<h3>Comment:</h3>
1818
{/* Directly rendering user input without sanitation */}
19-
<p dangerouslySetInnerHTML = {{ __html: commentData.text}}> {commentData.text}</p> // $ MISSING: Alert=[js/xss]
19+
<p dangerouslySetInnerHTML = {{ __html: commentData.text}}> {commentData.text}</p> // $ Alert=[js/xss]
2020
</div>
2121
);
2222
};

0 commit comments

Comments
 (0)