CVE-2022-39321 json
GitHub Actions Runner vulnerable to Docker Command Escaping
published 2022-10-25 4 y ago modified 2026-06-17 4 mo ago also EUVD-2022-6988 , GHSA-2c6m-6gqh-6qg3
- cvss
- 8.8
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 2.0%
- EPSS 2.0% chance of exploitation in 30 days, percentile 80%
- public exploits
- 0
- none known
Summary
GitHub Actions Runner is the application that runs a job from a GitHub Actions workflow. The actions runner invokes the docker cli directly in order to run job containers, service containers, or container actions. A bug in the logic for how the environment is encoded into these docker commands was discovered in versions prior to 2.296.2, 2.293.1, 2.289.4, 2.285.2, and 2.283.4 that allows an input to escape the environment variable and modify that docker command invocation directly. Jobs that use container actions, job containers, or service containers alongside untrusted user inputs in environment variables may be vulnerable. The Actions Runner has been patched, both on `github.com` and hotfixes for GHES and GHAE customers in versions 2.296.2, 2.293.1, 2.289.4, 2.285.2, and 2.283.4. GHES and GHAE customers may want to patch their instance in order to have their runners automatically upgrade to these new runner versions. As a workaround, users may consider removing any container actions, job containers, or service containers from their jobs until they are able to upgrade their runner versions.
Patch / fix
- github-actions actions/runner 2.283.4, 2.285.2, 2.289.4, 2.293.1, 2.296.2
- github runner 2.283.4, 2.285.2, 2.289.4, 2.293.1, 2.296.2
- github.com/actions/runner#2107 pull request
- github.com/actions/runner#2108 pull request
CISA SSVC
- Exploitation
- none
- Automatable
- no
- Technical impact
- total
- Assessed
- 18 mo ago
Exploit prediction
1.96% chance of exploitation in the next 30 days, higher than 80% of all scored CVEs (FIRST EPSS, 2026-11-08).
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 3.1 | 8.8 | CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H |
| GitHub | 3.1 | 8.8 | CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H |
| NVD | 3.1 | 9.9 | CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| github-actions | actions/runner | >=2.294.0, <2.296.2 >=2.290.0, <2.293.1 >=2.286.0, <2.289.4 >=2.284.0, <2.285.2 <2.283.4 |
2.296.2 2.293.1 2.289.4 2.285.2 2.283.4 |
Affected products
- actions runner
Classification
- Weakness
-
- CWE-78 Improper Neutralization of Special Elements used in an OS Command
References
-
github.com
/actions/runner/pull/2107
web, patch, release-notes, third-party-advisory
-
github.com
/actions/runner/pull/2108
web, patch, third-party-advisory
-
github.com
/actions/runner/security/advisories/GHSA-2c6m-6gqh-6qg3
web, third-party-advisory
-
nvd.nist.gov
/vuln/detail/CVE-2022-39321
advisory
-
github.com
/actions/runner
package
Sources
- CVE List CVE-2022-39321
- GitHub Advisory GHSA-2c6m-6gqh-6qg3
- NVD CVE-2022-39321
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.