Skip to content

Commit 0c01588

Browse files
committed
Added tanstack-vue useQuery modeling
1 parent 7712ca3 commit 0c01588

File tree

2 files changed

+19
-3
lines changed

2 files changed

+19
-3
lines changed

javascript/ql/lib/ext/tanstack.model.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,3 +5,4 @@ extensions:
55
data:
66
- ["@tanstack/angular-query-experimental", "Member[injectQuery]", "Argument[0].ReturnValue.Member[queryFn].ReturnValue", "ReturnValue.Member[data].Awaited", "taint"]
77
- ["@tanstack/angular-query", "Member[injectQuery]", "Argument[0].ReturnValue.Member[queryFn].ReturnValue", "ReturnValue.Member[data].Awaited", "taint"]
8+
- ["@tanstack/vue-query", "Member[useQuery]", "Argument[0].Member[queryFn].ReturnValue.Awaited", "ReturnValue.Member[data]", "taint"]

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

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
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 |
33
| test.ts:21:57:21:76 | response.description | test.ts:8:9:8:79 | this.#h ... query') | test.ts:21:57:21:76 | response.description | Cross-site scripting vulnerability due to $@. | test.ts:8:9:8:79 | this.#h ... query') | user-provided value |
44
| test.ts:24:36:24:90 | `<h2>${ ... o}</p>` | test.ts:8:9:8:79 | this.#h ... query') | test.ts:24:36:24:90 | `<h2>${ ... o}</p>` | Cross-site scripting vulnerability due to $@. | test.ts:8:9:8:79 | this.#h ... query') | user-provided value |
5+
| test.vue:22:10:22:22 | v-html=data | test.vue:10:32:10:84 | fetch(" ... sts/1") | test.vue:22:10:22:22 | v-html=data | Cross-site scripting vulnerability due to $@. | test.vue:10:32:10:84 | fetch(" ... sts/1") | user-provided value |
56
| testReactRelay.tsx:7:43:7:58 | commentData.text | testReactRelay.tsx:5:23:5:52 | useFrag ... entRef) | testReactRelay.tsx:7:43:7:58 | commentData.text | Cross-site scripting vulnerability due to $@. | testReactRelay.tsx:5:23:5:52 | useFrag ... entRef) | user-provided value |
67
| testReactRelay.tsx:18:48:18:68 | data.co ... 0].text | testReactRelay.tsx:17:16:17:42 | useLazy ... ry, {}) | testReactRelay.tsx:18:48:18:68 | data.co ... 0].text | Cross-site scripting vulnerability due to $@. | testReactRelay.tsx:17:16:17:42 | useLazy ... ry, {}) | user-provided value |
78
| testReactRelay.tsx:28:17:28:67 | usePrel ... r?.name | testReactRelay.tsx:28:17:28:56 | usePrel ... erence) | testReactRelay.tsx:28:17:28:67 | usePrel ... r?.name | Cross-site scripting vulnerability due to $@. | testReactRelay.tsx:28:17:28:56 | usePrel ... erence) | user-provided value |
@@ -31,6 +32,14 @@ edges
3132
| test.ts:24:43:24:55 | response.name | test.ts:24:36:24:90 | `<h2>${ ... o}</p>` | provenance | |
3233
| test.ts:24:67:24:74 | response | test.ts:24:67:24:84 | response.owner.bio | provenance | |
3334
| test.ts:24:67:24:84 | response.owner.bio | test.ts:24:36:24:90 | `<h2>${ ... o}</p>` | provenance | |
35+
| test.vue:7:11:13:6 | data | test.vue:15:21:15:24 | data | provenance | |
36+
| test.vue:7:45:7:48 | data | test.vue:7:11:13:6 | data | provenance | |
37+
| test.vue:10:15:10:84 | response | test.vue:11:16:11:23 | response | provenance | |
38+
| test.vue:10:26:10:84 | await f ... sts/1") | test.vue:10:15:10:84 | response | provenance | |
39+
| test.vue:10:32:10:84 | fetch(" ... sts/1") | test.vue:10:26:10:84 | await f ... sts/1") | provenance | |
40+
| test.vue:11:16:11:23 | response | test.vue:11:16:11:30 | response.json() | provenance | |
41+
| test.vue:11:16:11:30 | response.json() | test.vue:7:45:7:48 | data | provenance | |
42+
| test.vue:15:21:15:24 | data | test.vue:22:10:22:22 | v-html=data | provenance | |
3443
| testReactRelay.tsx:5:9:5:52 | commentData | testReactRelay.tsx:7:43:7:53 | commentData | provenance | |
3544
| testReactRelay.tsx:5:23:5:52 | useFrag ... entRef) | testReactRelay.tsx:5:9:5:52 | commentData | provenance | |
3645
| testReactRelay.tsx:7:43:7:53 | commentData | testReactRelay.tsx:7:43:7:58 | commentData.text | provenance | |
@@ -76,6 +85,15 @@ nodes
7685
| test.ts:24:43:24:55 | response.name | semmle.label | response.name |
7786
| test.ts:24:67:24:74 | response | semmle.label | response |
7887
| test.ts:24:67:24:84 | response.owner.bio | semmle.label | response.owner.bio |
88+
| test.vue:7:11:13:6 | data | semmle.label | data |
89+
| test.vue:7:45:7:48 | data | semmle.label | data |
90+
| test.vue:10:15:10:84 | response | semmle.label | response |
91+
| test.vue:10:26:10:84 | await f ... sts/1") | semmle.label | await f ... sts/1") |
92+
| test.vue:10:32:10:84 | fetch(" ... sts/1") | semmle.label | fetch(" ... sts/1") |
93+
| test.vue:11:16:11:23 | response | semmle.label | response |
94+
| test.vue:11:16:11:30 | response.json() | semmle.label | response.json() |
95+
| test.vue:15:21:15:24 | data | semmle.label | data |
96+
| test.vue:22:10:22:22 | v-html=data | semmle.label | v-html=data |
7997
| testReactRelay.tsx:5:9:5:52 | commentData | semmle.label | commentData |
8098
| testReactRelay.tsx:5:23:5:52 | useFrag ... entRef) | semmle.label | useFrag ... entRef) |
8199
| testReactRelay.tsx:7:43:7:53 | commentData | semmle.label | commentData |
@@ -112,6 +130,3 @@ nodes
112130
| testReactRelay.tsx:136:16:136:39 | readFra ... y, key) | semmle.label | readFra ... y, key) |
113131
| testReactRelay.tsx:137:50:137:53 | data | semmle.label | data |
114132
subpaths
115-
testFailures
116-
| test.vue:10:87:10:97 | // $ Source | Missing result: Source |
117-
| test.vue:22:31:22:53 | <!--$ Alert[js/xss] --> | Missing result: Alert[js/xss] |

0 commit comments

Comments
 (0)