CVE-2026-116676 json
Atlantis: OS command injection through PR-controlled Terraform workspace enables RCE during plan
published 2026-10-27 12 d ago modified 2026-11-05 3 d ago also GHSA-rjh2-4xgw-p2hj , GO-2026-6871 , EUVD-2026-111231
- cvss
- 8.8
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.5%
- EPSS 0.5% chance of exploitation in 30 days, percentile 40%
- public exploits
- 0
- none known
Summary
Atlantis is a self-hosted golang application that listens for Terraform pull request events via webhooks. From version 0.4.0 until 0.47.1, Atlantis passes the pull-request-controlled workspace value from atlantis.yaml into Terraform command arguments that are joined with strings.Join(args, " ") and executed through sh -c. An authenticated contributor whose pull request is eligible for an Atlantis plan can include shell metacharacters in the workspace name, causing arbitrary commands to execute as the Atlantis service account without custom workflows, apply permission, or a malicious Terraform provider. External contributors can reach the flaw through fork pull requests only when --allow-fork-prs is enabled, while eligible same-repository branches do not require that option. The commands inherit the Atlantis process environment and can access cloud-provider, Terraform, and version-control credentials as well as files, state, and network resources available to the service. This issue is fixed in version 0.47.1.
Patch / fix
- go github.com/runatlantis/atlantis 0.47.1
CISA SSVC
- Exploitation
- Proof of concept is public
- Automatable
- no
- Technical impact
- total
- Assessed
- 5 d ago
Exploit prediction
0.47% chance of exploitation in the next 30 days, higher than 40% of all scored CVEs (FIRST EPSS, 2026-11-08).
Exploits and checks
- github.com https://github.com/runatlantis/atlantis/security/advisories/GHSA-rjh2-4xgw-p2hj referenced PoC, tagged "exploit" by a source, unverified
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 |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| go | github.com/runatlantis/atlantis | >=0.4.0, <0.47.1 |
0.47.1 |
Affected products
- runatlantis atlantis
Classification
- Weakness
-
- CWE-78 Improper Neutralization of Special Elements used in an OS Command
References
-
github.com
/runatlantis/atlantis/pull/6792
web, patch
-
github.com
/runatlantis/atlantis/commit/8dd22b4d0a9d7c129fdbf6a3398dd1c4cf8c3a59
web, patch
-
github.com
/runatlantis/atlantis/commit/f04df0d53f0544d9eb6f5026dd8b74fbefd82ac8
web, patch
-
github.com
/runatlantis/atlantis/security/advisories/GHSA-rjh2-4xgw-p2hj
exploit, web, advisory
-
github.com
/runatlantis/atlantis/releases/tag/v0.47.1
web
-
nvd.nist.gov
/vuln/detail/CVE-2026-116676
advisory
-
github.com
/runatlantis/atlantis
package
Sources
- CVE List CVE-2026-116676
- GitHub Advisory GHSA-rjh2-4xgw-p2hj
- NVD CVE-2026-116676
- OSV GO-2026-6871
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.