Documentation Index
Fetch the complete documentation index at: https://docs.pipefort.com/llms.txt
Use this file to discover all available pages before exploring further.
| Field | Value |
|---|---|
| Rule ID | slsa-build-l3-cache-poisoning |
| Severity | HIGH |
| SLSA level | v1.2 Build L3 |
| Auto-fix | ✗ |
What the check does
Fires when all of the following are true:- The workflow triggers on
pull_request_target. - A job has an
actions/cache@…step. - That step’s
key:(orrestore-keys:) interpolates a PR-controlled context:github.head_ref,github.event.pull_request.head.{ref,sha,label}, orgithub.event.pull_request.{title,body,number}.
Why it matters
pull_request_target runs in the base branch’s privileged context with
repository secrets and write tokens. If the cache key is derived from data the
attacker controls (a PR’s head ref, title, etc.), the attacker can plant a
cache entry that subsequent trusted base-branch builds will restore — letting
them inject arbitrary files into the build, violating SLSA Build L3’s
isolation guarantee.