mirror of
https://github.com/github/codeql.git
synced 2026-04-26 09:15:12 +02:00
Add more defaultAdditionalTaintSteps
This commit is contained in:
@@ -15,9 +15,23 @@ predicate defaultTaintSanitizer(DataFlow::Node node) { none() }
|
||||
*/
|
||||
cached
|
||||
predicate defaultAdditionalTaintStep(DataFlow::Node nodeFrom, DataFlow::Node nodeTo) {
|
||||
// operation involving `nodeFrom`
|
||||
exists(CfgNodes::ExprNodes::OperationCfgNode op |
|
||||
op = nodeTo.asExpr() and
|
||||
op.getAnOperand() = nodeFrom.asExpr() and
|
||||
not op.getExpr() instanceof AssignExpr
|
||||
)
|
||||
or
|
||||
// string interpolation of `nodeFrom` into `nodeTo`
|
||||
exists(CfgNodes::ExprNodes::StringlikeLiteralCfgNode lit, StringInterpolationComponent sic |
|
||||
lit = nodeTo.asExpr() and
|
||||
sic = lit.getExpr().getComponent(_) and
|
||||
sic.getAStmt() = nodeFrom.asExpr().getExpr()
|
||||
)
|
||||
or
|
||||
// element reference from nodeFrom
|
||||
exists(CfgNodes::ExprNodes::ElementReferenceCfgNode ref |
|
||||
ref = nodeTo.asExpr() and
|
||||
ref.getExpr().getReceiver() = nodeFrom.asExpr().getExpr()
|
||||
)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user