CVE-2023-49291
Improper Sanitization of Branch Name Leads to Arbitrary Code Injection
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.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:H/A:N
Affected products
tj-actions · branch-namesWant to know if your infrastructure is exposed to this?
Talk to TrueHacking →References
https://github.com/tj-actions/branch-names/commit/4923d1ca41f928c24f1c1b3af9daaadfb71e6337https://github.com/tj-actions/branch-names/commit/6c999acf206f5561e19f46301bb310e9e70d8815https://github.com/tj-actions/branch-names/commit/726fe9ba5e9da4fcc716223b7994ffd0358af060https://github.com/tj-actions/branch-names/security/advisories/GHSA-8v8w-v8xg-79rfhttps://securitylab.github.com/research/github-actions-untrusted-input