Skip to content

Commit f388703

Browse files
committed
ATM: update further files following the addition of XssThroughDom query
1 parent b885249 commit f388703

File tree

4 files changed

+19
-1
lines changed

4 files changed

+19
-1
lines changed

javascript/ql/experimental/adaptivethreatmodeling/modelbuilding/DebugResultInclusion.ql

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ private import experimental.adaptivethreatmodeling.NosqlInjectionATM as NosqlInj
1616
private import experimental.adaptivethreatmodeling.SqlInjectionATM as SqlInjectionAtm
1717
private import experimental.adaptivethreatmodeling.TaintedPathATM as TaintedPathAtm
1818
private import experimental.adaptivethreatmodeling.XssATM as XssAtm
19+
private import experimental.adaptivethreatmodeling.XssThroughDomATM as XssThroughDomAtm
1920

2021
string getAReasonSinkExcluded(DataFlow::Node sinkCandidate, Query query) {
2122
query instanceof NosqlInjectionQuery and
@@ -29,6 +30,9 @@ string getAReasonSinkExcluded(DataFlow::Node sinkCandidate, Query query) {
2930
or
3031
query instanceof XssQuery and
3132
result = any(XssAtm::DomBasedXssAtmConfig cfg).getAReasonSinkExcluded(sinkCandidate)
33+
or
34+
query instanceof XssThroughDomQuery and
35+
result = any(XssThroughDomAtm::XssThroughDomAtmConfig cfg).getAReasonSinkExcluded(sinkCandidate)
3236
}
3337

3438
pragma[inline]

javascript/ql/experimental/adaptivethreatmodeling/modelbuilding/extraction/Queries.qll

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,8 @@ newtype TQuery =
88
TNosqlInjectionQuery() or
99
TSqlInjectionQuery() or
1010
TTaintedPathQuery() or
11-
TXssQuery()
11+
TXssQuery() or
12+
TXssThroughDomQuery()
1213

1314
abstract class Query extends TQuery {
1415
abstract string getName();
@@ -31,3 +32,7 @@ class TaintedPathQuery extends Query, TTaintedPathQuery {
3132
class XssQuery extends Query, TXssQuery {
3233
override string getName() { result = "Xss" }
3334
}
35+
36+
class XssThroughDomQuery extends Query, TXssThroughDomQuery {
37+
override string getName() { result = "XssThroughDom" }
38+
}

javascript/ql/experimental/adaptivethreatmodeling/test/endpoint_large_scale/EndpointFeatures.ql

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import experimental.adaptivethreatmodeling.NosqlInjectionATM as NosqlInjectionAt
1111
import experimental.adaptivethreatmodeling.SqlInjectionATM as SqlInjectionAtm
1212
import experimental.adaptivethreatmodeling.TaintedPathATM as TaintedPathAtm
1313
import experimental.adaptivethreatmodeling.XssATM as XssAtm
14+
import experimental.adaptivethreatmodeling.XssThroughDomATM as XssThroughDomAtm
1415
import experimental.adaptivethreatmodeling.EndpointFeatures as EndpointFeatures
1516
import extraction.NoFeaturizationRestrictionsConfig
1617
private import experimental.adaptivethreatmodeling.EndpointCharacteristics as EndpointCharacteristics
@@ -21,6 +22,7 @@ query predicate tokenFeatures(DataFlow::Node endpoint, string featureName, strin
2122
not exists(any(SqlInjectionAtm::SqlInjectionAtmConfig cfg).getAReasonSinkExcluded(endpoint)) or
2223
not exists(any(TaintedPathAtm::TaintedPathAtmConfig cfg).getAReasonSinkExcluded(endpoint)) or
2324
not exists(any(XssAtm::DomBasedXssAtmConfig cfg).getAReasonSinkExcluded(endpoint)) or
25+
not exists(any(XssThroughDomAtm::XssThroughDomAtmConfig cfg).getAReasonSinkExcluded(endpoint)) or
2426
any(EndpointCharacteristics::IsArgumentToModeledFunctionCharacteristic characteristic)
2527
.getEndpoints(endpoint)
2628
) and

javascript/ql/experimental/adaptivethreatmodeling/test/endpoint_large_scale/FilteredTruePositives.ql

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import experimental.adaptivethreatmodeling.NosqlInjectionATM as NosqlInjectionAt
2020
import experimental.adaptivethreatmodeling.SqlInjectionATM as SqlInjectionAtm
2121
import experimental.adaptivethreatmodeling.TaintedPathATM as TaintedPathAtm
2222
import experimental.adaptivethreatmodeling.XssATM as XssAtm
23+
import experimental.adaptivethreatmodeling.XssThroughDomATM as XssThroughDomAtm
2324

2425
query predicate nosqlFilteredTruePositives(DataFlow::Node endpoint, string reason) {
2526
endpoint instanceof NosqlInjection::Sink and
@@ -44,3 +45,9 @@ query predicate xssFilteredTruePositives(DataFlow::Node endpoint, string reason)
4445
reason = any(XssAtm::DomBasedXssAtmConfig cfg).getAReasonSinkExcluded(endpoint) and
4546
reason != "argument to modeled function"
4647
}
48+
49+
query predicate xssThroughDomFilteredTruePositives(DataFlow::Node endpoint, string reason) {
50+
endpoint instanceof DomBasedXss::Sink and
51+
reason = any(XssThroughDomAtm::XssThroughDomAtmConfig cfg).getAReasonSinkExcluded(endpoint) and
52+
reason != "argument to modeled function"
53+
}

0 commit comments

Comments
 (0)