Skip to content

File tree

1 file changed

+14
-0
lines changed

1 file changed

+14
-0
lines changed

actions/ql/lib/codeql/actions/security/ArtifactPoisoningQuery.qll

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import codeql.actions.DataFlow
44
import codeql.actions.dataflow.FlowSources
55
import codeql.actions.security.PoisonableSteps
66
import codeql.actions.security.UntrustedCheckoutQuery
7+
import codeql.actions.security.ControlChecks
78

89
string unzipRegexp() { result = "(unzip|tar)\\s+.*" }
910

@@ -318,6 +319,19 @@ private module ArtifactPoisoningConfig implements DataFlow::ConfigSig {
318319
exists(run.getScript().getAFileReadCommand())
319320
)
320321
}
322+
323+
predicate observeDiffInformedIncrementalMode() { any() }
324+
325+
Location getASelectedSourceLocation(DataFlow::Node source) { none() }
326+
327+
Location getASelectedSinkLocation(DataFlow::Node sink) {
328+
result = sink.getLocation()
329+
or
330+
exists(Event event | result = event.getLocation() |
331+
inPrivilegedContext(sink.asExpr(), event) and
332+
not exists(ControlCheck check | check.protects(sink.asExpr(), event, "artifact-poisoning"))
333+
)
334+
}
321335
}
322336

323337
/** Tracks flow of unsafe artifacts that is used in an insecure way. */

0 commit comments

Comments
 (0)