Supply chain and CI
OWASP Top 10:2025 puts software supply chain failures at A03, covering dependencies, CI, registries, and update channels. pull_request_target runs in the context of the base repository and is dangerous when it checks out pull request code.
Skill: CI and dependency trust
Ask: Does a pull request workflow run untrusted code with the base repository's secrets, or does a package name resolve to an owner the build did not pin?
Stop: You have the workflow trigger and the permission it has, or the package coordinate and who published it. Do not run a hostile install.
Checklists
- Dependency and CI supply chain - Treat the build as an app. The question is which identity can publish, which workflow can read secrets, and which package name the install trusts.
Disclosures
- Malicious upstream code in xz Utils - Embedded malicious code in a software supply-chain release
Playbooks
- GitHub Actions trust - pull_request_target runs in the base repository, which can include secrets and a privileged token. It becomes dangerous when that workflow checks out pull request code and runs it. Describe the condition. Do not run untrusted code on a repository you are not allowed to test.
- Dependency Confusion & Supply Chain - Discover internal package names and (with authorization) demonstrate how a public look-alike could be pulled into builds.
- Git & CI/CD Secret Recon - Find leaked credentials and internal detail across code, git history, and exposed CI artifacts.
Tools
- zizmor - Statically audits GitHub Actions workflows, composite actions, Dependabot config, and pre-commit files. Run it offline on a workflow file you already have when CI permissions are in scope.
- osv-scanner - Matches dependencies in a local source tree or lockfile against the OSV vulnerability database. Run it on a checkout you already have before you spend time on libraries that are already patched.
- syft - Builds a software bill of materials from a local directory, archive, or container image. Hunters use that SBOM to see which packages an artifact ships and to feed a local vulnerability matcher.
- grype - Matches a local SBOM, directory, or image against known vulnerabilities. Point it at an SBOM you generated yourself rather than using it as a live test against a program.
Questions
Is every pull_request_target workflow a vulnerability?
No. The trigger runs in the base repository context, which can include secrets and the base token. It becomes dangerous when the workflow checks out pull request code and runs it. Describe that condition. Do not execute untrusted code on a repository you are not allowed to test.
Is this A03 or A08?
Software supply chain failures are OWASP Top 10:2025 A03. A missing integrity check on one artifact is closer to A08. Name the one you mean.
This page is the linked pack hunt_brief("supply-chain") returns on the MCP connector. Authorized testing only.