CVE-2023-49291: critical vulnerability in tj-actions branch-names
Improper Sanitization of Branch Name Leads to Arbitrary Code Injection
Published · Updated
28Vexday Risk Score
No sign of exploitation. No public exploitation artifact known so far.
ssvc Trackcvss 9.3epss 1.4%
exploitation probability
1.4%top 27% of all CVEs
observed exploitation
nono source reports it
In short
A GitHub Actions tool fails to properly sanitize branch names, allowing attackers to inject and execute arbitrary code by creating a specially crafted branch name. This can lead to theft of secrets or misuse of GitHub token permissions.
Technical detail
The tj-actions/branch-names action improperly handles the github.event.pull_request.head.ref and github.head_ref context variables within a run step, failing to sanitize branch names before shell execution. An attacker can craft a malicious branch name to achieve arbitrary code injection and potentially exfiltrate secrets or escalate permissions through GITHUB_TOKEN abuse.
Summary generated and translated by AI from the official description.
tj-actions/branch-names is a Github action to retrieve branch or tag names with support for all events. The `tj-actions/branch-names` GitHub Actions improperly references the `github.event.pull_request.head.ref` and `github.head_ref` context variables within a GitHub Actions `run` step. The head ref variable is the branch name and can be used to execute arbitrary code using a specially crafted branch name. As a result an attacker can use this vulnerability to steal secrets from or abuse `GITHUB_TOKEN` permissions. This vulnerability has been addressed in version 7.0.7. Users are advised to upgrade. There are no known workarounds for this vulnerability.