GHSA-RG3Q-PRF8-QXMP
Vulnerability from github – Published: 2023-04-24 22:32 – Updated: 2023-04-25 16:34Summary
The embano1/wip action uses the github.event.pull_request.title parameter in an insecure way. The title parameter is used in a run statement - resulting in a command injection vulnerability due to string interpolation.
Details and Impact
This vulnerability can be triggered by any user on GitHub. They just need to create a pull request with a commit message containing an exploit. (Note that first-time PR requests will not be run - but the attacker can submit a valid PR before submitting an invalid PR). The commit can be genuine, but the commit message can be malicious.
This can be used to execute code on the GitHub runners (potentially use it for crypto-mining, and waste your resources) and can be used to exfiltrate any secrets that you use in the CI pipeline (including repository tokens). Here is a set of blog posts by Github's security team explaining this issue.
How to update existing workflows
Replace the following line in your workflow using this action with the v2 branch name or commit pointing to this branch:
uses: embano1/wip@v2
Or using the exact commit:
uses: embano1/wip@c25450f77ed02c20d00b76ee3b33ff43838739a2 # v2
{
"affected": [
{
"package": {
"ecosystem": "GitHub Actions",
"name": "embano1/wip"
},
"ranges": [
{
"events": [
{
"introduced": "0"
},
{
"fixed": "2"
}
],
"type": "ECOSYSTEM"
}
]
}
],
"aliases": [
"CVE-2023-30623"
],
"database_specific": {
"cwe_ids": [
"CWE-77"
],
"github_reviewed": true,
"github_reviewed_at": "2023-04-24T22:32:32Z",
"nvd_published_at": "2023-04-24T22:15:09Z",
"severity": "HIGH"
},
"details": "## Summary\nThe `embano1/wip` action uses the `github.event.pull_request.title` parameter in an insecure way. The title parameter is used in a run statement - resulting in a command injection vulnerability due to string interpolation.\n\n## Details and Impact\nThis vulnerability can be triggered by any user on GitHub. They just need to create a pull request with a commit message containing an exploit. (Note that first-time PR requests will not be run - but the attacker can submit a valid PR before submitting an invalid PR). The commit can be genuine, but the commit message can be malicious. \n\nThis can be used to execute code on the GitHub runners (potentially use it for crypto-mining, and waste your resources) and can be used to exfiltrate any secrets that you use in the CI pipeline (including repository tokens). [Here](https://securitylab.github.com/research/github-actions-untrusted-input/) is a set of blog posts by Github\u0027s security team explaining this issue.\n\n## How to update existing workflows\n\nReplace the following line in your workflow using this action with the `v2` branch name or commit pointing to this branch:\n\n```yaml\n uses: embano1/wip@v2\n```\n\nOr using the exact commit:\n\n```yaml\n uses: embano1/wip@c25450f77ed02c20d00b76ee3b33ff43838739a2 # v2\n```",
"id": "GHSA-rg3q-prf8-qxmp",
"modified": "2023-04-25T16:34:43Z",
"published": "2023-04-24T22:32:32Z",
"references": [
{
"type": "WEB",
"url": "https://github.com/embano1/wip/security/advisories/GHSA-rg3q-prf8-qxmp"
},
{
"type": "ADVISORY",
"url": "https://nvd.nist.gov/vuln/detail/CVE-2023-30623"
},
{
"type": "WEB",
"url": "https://github.com/embano1/wip/commit/c25450f77ed02c20d00b76ee3b33ff43838739a2"
},
{
"type": "PACKAGE",
"url": "https://github.com/embano1/wip"
},
{
"type": "WEB",
"url": "https://securitylab.github.com/research/github-actions-untrusted-input"
}
],
"schema_version": "1.4.0",
"severity": [
{
"score": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"type": "CVSS_V3"
}
],
"summary": "Arbitrary command injection in embano1/wip "
}
Sightings
| Author | Source | Type | Date | Other |
|---|
Nomenclature
- Seen: The vulnerability was mentioned, discussed, or observed by the user.
- Confirmed: The vulnerability has been validated from an analyst's perspective.
- Published Proof of Concept: A public proof of concept is available for this vulnerability.
- Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
- Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
- Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
- Not confirmed: The user expressed doubt about the validity of the vulnerability.
- Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.