Fix recursion in entrypointFieldStep

When using local taint tracking to define a RemoteFlowSource, a recursion was created because entrypointFieldStep adds new RemoteFlowSources and was a local taint step. This is fixed by converting entrypointFieldStep into a defaultAdditionalTaintStep instead of a localAdditionalTaintStep, i.e. it will only affect global taint tracking from now on.
This commit is contained in:
Tony Torralba
2022-01-21 10:48:00 +01:00
parent b02f1c87a1
commit d22632ef78

View File

@@ -92,8 +92,6 @@ private module Cached {
)
or
FlowSummaryImpl::Private::Steps::summaryLocalStep(src, sink, false)
or
entrypointFieldStep(src, sink)
}
/**
@@ -103,6 +101,7 @@ private module Cached {
cached
predicate defaultAdditionalTaintStep(DataFlow::Node src, DataFlow::Node sink) {
localAdditionalTaintStep(src, sink) or
entrypointFieldStep(src, sink) or
any(AdditionalTaintStep a).step(src, sink)
}