Update all languages to use the shared taint-tracking library

This commit is contained in:
Jeroen Ketema
2023-08-04 13:32:46 +02:00
parent 20b792545d
commit 747cd1745a
22 changed files with 95 additions and 393 deletions

View File

@@ -8,6 +8,10 @@ import semmle.code.java.dataflow.DataFlow2
import semmle.code.java.dataflow.internal.TaintTrackingUtil::StringBuilderVarModule
module TaintTracking {
import semmle.code.java.dataflow.internal.tainttracking1.TaintTracking
import semmle.code.java.dataflow.internal.tainttracking1.TaintTrackingParameter::Public
private import semmle.code.java.dataflow.internal.DataFlowImplSpecific
private import semmle.code.java.dataflow.internal.TaintTrackingImplSpecific
private import codeql.dataflow.TaintTracking
import TaintFlowMake<JavaDataFlow, JavaTaintTracking>
import semmle.code.java.dataflow.internal.tainttracking1.TaintTrackingImpl
}

View File

@@ -0,0 +1,10 @@
/**
* Provides Java-specific definitions for use in the taint tracking library.
*/
private import codeql.dataflow.TaintTrackingParameter
private import DataFlowImplSpecific
module JavaTaintTracking implements TaintTrackingParameter<JavaDataFlow> {
import TaintTrackingUtil
}

View File

@@ -177,7 +177,7 @@ private RefType getElementType(RefType container) {
* of `c` at sinks and inputs to additional taint steps.
*/
bindingset[node]
predicate defaultImplicitTaintRead(DataFlow::Node node, DataFlow::Content c) {
predicate defaultImplicitTaintRead(DataFlow::Node node, DataFlow::ContentSet c) {
exists(RefType container |
(node.asExpr() instanceof Argument or node instanceof ArgumentNode) and
getElementType*(node.getType()) = container