Skip to content

Commit ecc008d

Browse files
committed
Removed appendChild as potential sink as it does not accept raw HTML.
1 parent 2edc9af commit ecc008d

File tree

3 files changed

+2
-8
lines changed

3 files changed

+2
-8
lines changed

Diff for: javascript/ql/lib/semmle/javascript/security/dataflow/DOM.qll

-2
Original file line numberDiff line numberDiff line change
@@ -56,8 +56,6 @@ class DomMethodCallNode extends DataFlow::MethodCallNode {
5656
name = "insertBefore" and argPos = 0
5757
or
5858
name = "createElement" and argPos = 0
59-
or
60-
name = "appendChild" and argPos = 0
6159
)
6260
}
6361

Diff for: javascript/ql/test/query-tests/Security/CWE-079/DomBasedXss/Xss.expected

-4
Original file line numberDiff line numberDiff line change
@@ -257,8 +257,6 @@ nodes
257257
| react-native.js:7:17:7:33 | req.param("code") | semmle.label | req.param("code") |
258258
| react-native.js:8:18:8:24 | tainted | semmle.label | tainted |
259259
| react-native.js:9:27:9:33 | tainted | semmle.label | tainted |
260-
| react-use-context.js:10:22:10:32 | window.name | semmle.label | window.name |
261-
| react-use-context.js:16:26:16:36 | window.name | semmle.label | window.name |
262260
| react-use-router.js:8:21:8:32 | router.query | semmle.label | router.query |
263261
| react-use-router.js:8:21:8:39 | router.query.foobar | semmle.label | router.query.foobar |
264262
| react-use-router.js:11:24:11:35 | router.query | semmle.label | router.query |
@@ -1322,8 +1320,6 @@ subpaths
13221320
| pages/[id].jsx:16:44:16:51 | params.q | pages/[id].jsx:26:10:26:22 | context.query | pages/[id].jsx:16:44:16:51 | params.q | Cross-site scripting vulnerability due to $@. | pages/[id].jsx:26:10:26:22 | context.query | user-provided value |
13231321
| react-native.js:8:18:8:24 | tainted | react-native.js:7:17:7:33 | req.param("code") | react-native.js:8:18:8:24 | tainted | Cross-site scripting vulnerability due to $@. | react-native.js:7:17:7:33 | req.param("code") | user-provided value |
13241322
| react-native.js:9:27:9:33 | tainted | react-native.js:7:17:7:33 | req.param("code") | react-native.js:9:27:9:33 | tainted | Cross-site scripting vulnerability due to $@. | react-native.js:7:17:7:33 | req.param("code") | user-provided value |
1325-
| react-use-context.js:10:22:10:32 | window.name | react-use-context.js:10:22:10:32 | window.name | react-use-context.js:10:22:10:32 | window.name | Cross-site scripting vulnerability due to $@. | react-use-context.js:10:22:10:32 | window.name | user-provided value |
1326-
| react-use-context.js:16:26:16:36 | window.name | react-use-context.js:16:26:16:36 | window.name | react-use-context.js:16:26:16:36 | window.name | Cross-site scripting vulnerability due to $@. | react-use-context.js:16:26:16:36 | window.name | user-provided value |
13271323
| react-use-router.js:8:21:8:39 | router.query.foobar | react-use-router.js:8:21:8:32 | router.query | react-use-router.js:8:21:8:39 | router.query.foobar | Cross-site scripting vulnerability due to $@. | react-use-router.js:8:21:8:32 | router.query | user-provided value |
13281324
| react-use-router.js:11:24:11:42 | router.query.foobar | react-use-router.js:11:24:11:35 | router.query | react-use-router.js:11:24:11:42 | router.query.foobar | Cross-site scripting vulnerability due to $@. | react-use-router.js:11:24:11:35 | router.query | user-provided value |
13291325
| react-use-router.js:23:43:23:61 | router.query.foobar | react-use-router.js:23:43:23:54 | router.query | react-use-router.js:23:43:23:61 | router.query.foobar | Cross-site scripting vulnerability due to $@. | react-use-router.js:23:43:23:54 | router.query | user-provided value |

Diff for: javascript/ql/test/query-tests/Security/CWE-079/DomBasedXss/react-use-context.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,13 @@ function useMyContext() {
77

88
export function useDoc1() {
99
let { root } = useMyContext();
10-
root.appendChild(window.name); // NOT OK
10+
root.appendChild(window.name); // OK -- the function does not accept string arguments
1111
}
1212

1313
class C extends Component {
1414
foo() {
1515
let { root } = this.context;
16-
root.appendChild(window.name); // NOT OK
16+
root.appendChild(window.name); // OK -- the function does not accept string arguments
1717
}
1818
}
1919

0 commit comments

Comments
 (0)