Skip to main content

Atlantis CVE-2026-116676

| EUVDEUVD-2026-111231 HIGH
OS Command Injection (CWE-78)
2026-10-27 GitHub_M GHSA-rjh2-4xgw-p2hj
8.8
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Open eligible pull request
  2. Delivery
    Commit atlantis.yaml with malicious workspace name
  3. Exploit
    Comment to trigger atlantis plan
  4. Execution
    Workspace value injected into sh -c
  5. Persist
    Arbitrary commands run as Atlantis service account
  6. Impact
    Exfiltrate cloud/Terraform/VCS credentials

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization OS command sanitization, avoid shell exec
MITRE ATT&CK

2 techniques across 1 tactic: Execution

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires that Atlantis processes the atlantis.yaml from the pull-request branch and that the attacker's pull request is eligible to run an Atlantis plan. The concrete prerequisite is control over the project 'workspace' value in atlantis.yaml (or the -w flag), which is validated only against '..', '/', and '\' and therefore permits shell metacharacters such as ';', '#', '$', redirections and whitespace. It does NOT require custom workflows, allow_custom_workflows, apply permission, or a malicious Terraform provider. Limiting factors: the attacker must be an authenticated contributor (PR:L) with an eligible PR; external/fork contributors can reach the flaw only when the server has --allow-fork-prs enabled, while eligible same-repository branches do not need that flag. Public repositories with --allow-fork-prs are the most exposed deployments.

Impact

This is a genuine high-priority issue, not a CVSS-inflated one. The CVSS:3.1 vector (AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H, 8.8) is internally consistent with the mechanism: a network-reachable webhook flow, low attack complexity (a single crafted workspace string in atlantis.yaml), and PR:L correctly reflecting that the attacker must be an authenticated contributor whose pull request is eligible for a plan. The impact rating C:H/I:H/A:H is well supported because command execution occurs as the Atlantis service account with access to cloud-provider, Terraform, and VCS credentials. The vuln.today Decision label is 'this_week', indicating prompt but not emergency remediation. No EPSS score and no CISA KEV entry were supplied, so there is no evidence of active or widespread exploitation; absence of these signals is not evidence of safety but means exploitation is not confirmed in the wild. A detailed, reproducible proof-of-concept is published in the GHSA advisory itself, which materially raises real-world likelihood versus a theoretical bug. The main factor reducing universal urgency is the precondition that an attacker needs an eligible pull request - external/fork exploitation requires --allow-fork-prs, though same-repository branches do not. Net: a real priority for anyone running Atlantis with contributor-facing PR automation, especially public repositories with fork PRs enabled.

Exploit ScenarioDerived

A contributor opens a pull request containing an atlantis.yaml whose project 'workspace' field embeds shell metacharacters (e.g. 'poc;id;false;#') and comments 'atlantis plan'. When Atlantis runs the plan, it joins the Terraform arguments and executes them through sh -c, so the injected commands run as the Atlantis service account and can read the cloud/Terraform/VCS credentials in its environment. A working proof-of-concept demonstrating this is published in the vendor's GHSA advisory; for external/fork contributors the attack requires --allow-fork-prs, whereas an eligible same-repository branch does not.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
1 PoC candidate (unverified) Patch available 0.5% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 28, 2026

Remote code execution in Atlantis (runatlantis/atlantis) 0.4.0 through 0.47.0 lets an authenticated contributor whose pull request is eligible for an Atlantis plan inject shell metacharacters through the PR-controlled Terraform workspace value in atlantis.yaml, executing arbitrary commands as the Atlantis service account. The flaw requires no custom workflows, no allow_custom_workflows, no apply permission and no malicious Terraform provider; fork-based contributors reach it only when --allow-fork-prs is enabled, while eligible same-repository branches need no such flag. Because injected commands inherit the Atlantis process environment, exfiltration of cloud-provider, Terraform and VCS credentials plus access to state, plan files, checkouts and the server's network identity are all in scope; exploitation is limited to authenticated contributors (PR:L), public PoCs demonstrating the workspace payload exist, no public working exploit code is confirmed, and vendor-released patch 0.47.1 resolves the issue.

RemediationAI

Vendor-released patch: upgrade Atlantis to 0.47.1, which switches Terraform and Conftest execution to an argument vector (no sh -c) and rejects workspace names containing '/', '\\', '..', '$', whitespace or control characters and names starting with '-' or '~' (GHSA-rjh2-4xgw-p2hj, PR #6792, commits 8dd22b4d0a9d7c129fdbf6a3398dd1c4cf8c3a59 and f04df0d53f0544d9eb6f5026dd8b74fbefd82ac8, release v0.47.1). If upgrading cannot happen immediately, the concrete compensating controls are to disable --allow-fork-prs so external contributors cannot reach plan execution (trade-off: fork-based contributions no longer get Atlantis plans), and to avoid running Atlantis for untrusted same-repository contributors, since any account able to open an eligible PR can still supply a malicious workspace through atlantis.yaml or the -w flag. Because the injected commands inherit the Atlantis process environment, rotate or scope down cloud-provider, Terraform and VCS credentials held by the service, restrict its filesystem access to state and plan files, and treat hosts running affected versions with untrusted plan contributors as potentially compromised. Restricting plan eligibility to trusted authors or repos approximates mitigation but does not remove the vulnerable code path.

Affected VersionsENISA

atlantis 0.4.0, < 0.47.1

Affected Packages

go github.com/runatlantis/atlantis fix: 0.47.1
euvd atlantis fix: 0.47.1

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 2 packages in go, euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

Atlantis is a self-hosted Go service that receives Terraform pull request webhooks and runs terraform plan/apply on behalf of repositories. The root cause is CWE-78 (OS command injection): project workspace names from the repository-level atlantis.yaml are validated in server/core/config/raw/project.go against only '..', '/', and '\\', so ';', '#', '$', whitespace and redirection operators survive, and the value is placed as an argument to terraform workspace select / workspace new in server/core/runtime/workspace_step_runner_delegate.go. The Terraform client then flattens the argument slice with strings.Join(args, " ") in server/core/terraform/tfclient/terraform_client.go and hands the resulting string to exec.Command("sh", "-c", tfCmd), so what should have been a single argv element becomes shell source. A workspace such as poc;id;false;# therefore runs id as a separate command on both the select and new attempts, bypassing the explicit allow_custom_workflows control that Atlantis otherwise uses to gate shell execution. The upstream fix (PR #6792, commits 8dd22b4 and f04df0d) moves Terraform and Conftest invocation to argument-vector execution with controlled environment expansion and tightens workspace validation to reject '/', '\\', '..', '$', whitespace and control characters and to disallow leading '-' or '~', applying the same rule to the -w comment flag and cloud block workspaces. Per the advisories, the flaw was verified against upstream/main commit 92ce5c51 as of August 2026.

Know when Atlantis gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (GitHub_M) PRIMARY 8.8 HIGH
AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
vuln.today AI 8.8 HIGH

Triggered via webhook-driven PR flow (AV:N) by a single crafted field (AC:L); requires an authenticated eligible contributor (PR:L), no user interaction, yielding full RCE as the service account (C/I/A:H).

3.1 AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
4.0 AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High

Lifecycle Timeline

2
Patch available
Oct 27, 2026 - 18:18 EUVD
CVE Published
Oct 27, 2026 - 17:11 cve.org
HIGH 8.8

DescriptionCVE.org

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.

Technical POC Analysis

CWE-78 (OS Command Injection).

Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.

Latest POC

1 PoC candidate from github (unverified)

Sign in to open the public PoC links collected for this CVE.

Executive ViewAI

Why It Matters

CVE-2026-116676 is a high-severity remote code execution flaw in Atlantis (versions 0.4.0-0.47.0) that allows an authenticated contributor to execute arbitrary commands on the Atlantis server through a crafted Terraform workspace value in a pull request. This could lead to the theft of cloud, Terraform, and version control credentials, as well as unauthorized access to infrastructure state and internal network resources. Leadership should prioritize patching because Atlantis often holds privileged credentials, and exploitation requires only a low-privilege contributor account.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.5%
Top 60% exploitable
Prevalence
Medium
popular self-hosted Terraform PR-automation tool, common in platform teams, not everywhere
Threat Intel
1
1 source
Data Quality
5 sources
Confidence: Medium

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity HIGH
CISA KEV No
Public POC Yes
EPSS 0.5%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
Poc
System Exposure· derived
Open
Automatable· derived
No
Human Impact
High

Priority Score

64
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +44
PoC: +20
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

OS command injection occurs when an application passes unsanitized user input directly into system shell commands.

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy