CVE-2026-55675: Salty documentation workflow executes fork-controlled Python build hooks with deployment secrets
The Salty documentation repository builds and deploys the docs.saltbox.dev website. Prior to commit 649c9aea2daef1168eeb0415b44e65dbbde9f220, .github/workflows/trigger-pr-build.yml records an untrusted fork commit in the prinfo artifact, and the secret-bearing workflowrun job in .github/workflows/build-pr.yml checks out that commit before running pip install -r requirements.txt. A fork pull request can therefore supply attacker-authored setup.py or PEP 517 build hooks whose installation code executes in the privileged base-repository workflow with CFAPITOKEN, GHTOKEN, MKDOCSGITCOMMITTERSAPIKEY, and a write-capable GITHUBTOKEN, allowing secret disclosure and follow-on compromise. The vulnerability is not caused by the repository-fork guard, and the demonstrated path requires attacker control of fork content rather than merely the artifact metadata. This vulnerability is fixed with commit 649c9aea2daef1168eeb0415b44e65dbbde9f220.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade to a fixed release to a version that resolves this vulnerability.
Patch 649c9aea2daef1168eeb0415b44e65dbbde9f220
Event History
Frequently Asked Questions
Which pull requests can trigger the vulnerable execution path?
A pull request from an untrusted fork can trigger it if the attacker controls the fork content. The demonstrated path depends on attacker-authored dependency build files such as setup.py or PEP 517 build hooks, not solely on manipulating artifact metadata.
What privileges or secrets could be exposed if exploitation succeeds?
Installation code runs in a privileged base-repository workflow with CF_API_TOKEN, GH_TOKEN, MKDOCS_GIT_COMMITTERS_APIKEY, and a write-capable GITHUB_TOKEN available. This can disclose those secrets and enable follow-on compromise.
Are repositories protected by a fork guard unaffected?
No. The issue is not caused by the repository-fork guard, so that guard does not address the described execution path.
What remediation is identified?
Update the affected workflow configuration to include commit 649c9aea2daef1168eeb0415b44e65dbbde9f220, which fixes the vulnerability.