Merge pull request #11980 from geoffw0/modern2

Swift: Structure modernized queries more consistently
This commit is contained in:
Geoffrey White
2023-01-27 14:33:43 +00:00
committed by GitHub
10 changed files with 25 additions and 8 deletions

View File

@@ -89,9 +89,9 @@ private module Frameworks {
private import codeql.swift.frameworks.StandardLibrary.UrlSession
private import codeql.swift.frameworks.StandardLibrary.WebView
private import codeql.swift.frameworks.Alamofire.Alamofire
private import codeql.swift.security.CleartextLogging
private import codeql.swift.security.PathInjection
private import codeql.swift.security.PredicateInjection
private import codeql.swift.security.CleartextLoggingExtensions
private import codeql.swift.security.PathInjectionExtensions
private import codeql.swift.security.PredicateInjectionExtensions
}
/**

View File

@@ -25,6 +25,9 @@ class CleartextLoggingAdditionalTaintStep extends Unit {
abstract predicate step(DataFlow::Node n1, DataFlow::Node n2);
}
/**
* A sink defined in a CSV model.
*/
private class DefaultCleartextLoggingSink extends CleartextLoggingSink {
DefaultCleartextLoggingSink() { sinkNode(this, "logging") }
}

View File

@@ -6,7 +6,7 @@
import swift
private import codeql.swift.dataflow.DataFlow
private import codeql.swift.dataflow.TaintTracking
private import codeql.swift.security.CleartextLogging
private import codeql.swift.security.CleartextLoggingExtensions
private import codeql.swift.security.SensitiveExprs
/**

View File

@@ -29,6 +29,9 @@ class PathInjectionAdditionalTaintStep extends Unit {
abstract predicate step(DataFlow::Node node1, DataFlow::Node node2);
}
/**
* A sink defined in a CSV model.
*/
private class DefaultPathInjectionSink extends PathInjectionSink {
DefaultPathInjectionSink() { sinkNode(this, "path-injection") }
}

View File

@@ -8,7 +8,7 @@ private import codeql.swift.dataflow.DataFlow
private import codeql.swift.dataflow.ExternalFlow
private import codeql.swift.dataflow.FlowSources
private import codeql.swift.dataflow.TaintTracking
private import codeql.swift.security.PathInjection
private import codeql.swift.security.PathInjectionExtensions
/**
* A taint-tracking configuration for path injection vulnerabilities.

View File

@@ -24,6 +24,9 @@ class PredicateInjectionAdditionalTaintStep extends Unit {
abstract predicate step(DataFlow::Node n1, DataFlow::Node n2);
}
/**
* A sink defined in a CSV model.
*/
private class DefaultPredicateInjectionSink extends PredicateInjectionSink {
DefaultPredicateInjectionSink() { sinkNode(this, "predicate-injection") }
}

View File

@@ -7,7 +7,7 @@ import swift
private import codeql.swift.dataflow.DataFlow
private import codeql.swift.dataflow.FlowSources
private import codeql.swift.dataflow.TaintTracking
private import codeql.swift.security.PredicateInjection
private import codeql.swift.security.PredicateInjectionExtensions
/**
* A taint-tracking configuration for predicate injection vulnerabilities.

View File

@@ -34,7 +34,7 @@ private class DefaultUncontrolledFormatStringSink extends UncontrolledFormatStri
// the format argument to a `FormattingFunctionCall`.
this.asExpr() = any(FormattingFunctionCall fc).getFormat()
or
// a sink defined in a Csv model.
// a sink defined in a CSV model.
sinkNode(this, "uncontrolled-format-string")
}
}

View File

@@ -4,6 +4,7 @@ import swift
private import codeql.swift.dataflow.DataFlow
private import codeql.swift.frameworks.AEXML
private import codeql.swift.frameworks.Libxml2
private import codeql.swift.dataflow.ExternalFlow
/** A data flow sink for XML external entities (XXE) vulnerabilities. */
abstract class XxeSink extends DataFlow::Node { }
@@ -201,3 +202,10 @@ private predicate lib2xmlOptionLocalTaintStep(DataFlow::Node source, DataFlow::N
source.asExpr() = int32Init.getAnArgument().getExpr() and sink.asExpr() = int32Init
)
}
/**
* A sink defined in a CSV model.
*/
private class DefaultXxeSink extends XxeSink {
DefaultXxeSink() { sinkNode(this, "xxe") }
}

View File

@@ -7,7 +7,7 @@ import swift
import codeql.swift.dataflow.DataFlow
import codeql.swift.dataflow.FlowSources
import codeql.swift.dataflow.TaintTracking
import codeql.swift.security.XXE
import codeql.swift.security.XXEExtensions
/**
* A taint-tracking configuration for XML external entities (XXE) vulnerabilities.