Skip to content

Commit e661fc0

Browse files
committed
Split Android XSS sink defintions out of XSS.qll
This removes one of the routes by which XSS.qll is always in scope, and so its dataflow configuration is too -- however it is still always in scope because JaxWS.qll imports it.
1 parent 747a8e4 commit e661fc0

File tree

3 files changed

+17
-13
lines changed

3 files changed

+17
-13
lines changed

java/ql/src/semmle/code/java/dataflow/ExternalFlow.qll

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,7 @@ private import FlowSummary
7777
*/
7878
private module Frameworks {
7979
private import internal.ContainerFlow
80+
private import semmle.code.java.frameworks.android.XssSinks
8081
private import semmle.code.java.frameworks.ApacheHttp
8182
private import semmle.code.java.frameworks.apache.Collections
8283
private import semmle.code.java.frameworks.apache.Lang
@@ -92,7 +93,6 @@ private module Frameworks {
9293
private import semmle.code.java.security.ResponseSplitting
9394
private import semmle.code.java.security.InformationLeak
9495
private import semmle.code.java.security.JexlInjectionSinkModels
95-
private import semmle.code.java.security.XSS
9696
private import semmle.code.java.security.LdapInjection
9797
private import semmle.code.java.security.XPath
9898
private import semmle.code.java.frameworks.android.SQLite
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
/** Provides XSS sink models relating to the `android.webkit.WebView` class. */
2+
3+
import java
4+
private import semmle.code.java.dataflow.ExternalFlow
5+
6+
/** CSV sink models representing methods susceptible to XSS attacks. */
7+
private class DefaultXssSinkModel extends SinkModelCsv {
8+
override predicate row(string row) {
9+
row =
10+
[
11+
"android.webkit;WebView;false;loadData;;;Argument[0];xss",
12+
"android.webkit;WebView;false;loadUrl;;;Argument[0];xss",
13+
"android.webkit;WebView;false;loadDataWithBaseURL;;;Argument[1];xss"
14+
]
15+
}
16+
}

java/ql/src/semmle/code/java/security/XSS.qll

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -29,18 +29,6 @@ class XssAdditionalTaintStep extends Unit {
2929
abstract predicate step(DataFlow::Node node1, DataFlow::Node node2);
3030
}
3131

32-
/** CSV sink models representing methods susceptible to XSS attacks. */
33-
private class DefaultXssSinkModel extends SinkModelCsv {
34-
override predicate row(string row) {
35-
row =
36-
[
37-
"android.webkit;WebView;false;loadData;;;Argument[0];xss",
38-
"android.webkit;WebView;false;loadUrl;;;Argument[0];xss",
39-
"android.webkit;WebView;false;loadDataWithBaseURL;;;Argument[1];xss"
40-
]
41-
}
42-
}
43-
4432
/** A default sink representing methods susceptible to XSS attacks. */
4533
private class DefaultXssSink extends XssSink {
4634
DefaultXssSink() {

0 commit comments

Comments
 (0)