Runatlantis Atlantis: Betriebssystem-Befehlsinjektion (CVE-2026-116676)
Veröffentlicht Zuletzt geändert Quellen: pwn.watch, OSV, Hersteller, CVE.org
Was ist betroffen, was ist zu tun
Aktualisieren Sie github.com/runatlantis/atlantis auf Version 0.47.1.
- Betroffen
- Runatlantis Atlantis
gte 0.4.0, < 0.47.1..*
- Runatlantis Atlantis
Unklar, ob und wie Sie betroffen sind? Frage zu dieser Schwachstelle stellen
Metriken
8,8
Priorität
XIEM Effective CVSS: höchste verfügbare CVSS-Bewertung aus NVD- und Herstellerangaben.
Quelle: Hersteller (CNA), CVSS v3
8,8
CVSS v3
Schweregrad Hoch auf der Skala von 0 bis 10.
Quelle: pwn.watch, OSV, Hersteller, CVE.org
—
EPSS-Score
Für diese Schwachstelle liegt kein Wert vor.
Alle Metriken anzeigen
- Schweregrad
- Hoch
Priorität (0–325)
Der Priorisierungs-Score ist eine zusammengeführte Kennzahl, die mehrere Einzelsignale zu einer einzigen, handlungsleitenden Rangfolge verdichtet: technische Schwere (CVSS), Ausnutzungswahrscheinlichkeit (EPSS), der Status als bekannt ausgenutzt (KEV) und der Kontext des betroffenen Assets. Ziel ist die Antwort auf die einzig wirklich wichtige Frage im Schwachstellenmanagement: Was zuerst?
Im Glossar lesen- 74.00 Methodik
Exploit-Reife
Ein Exploit ist Code oder eine Technik, die eine konkrete Schwachstelle gezielt ausnutzt, um ein unbeabsichtigtes Verhalten zu erzwingen — etwa Code auszuführen oder Rechte auszuweiten. Er ist das Werkzeug, das aus einer theoretischen Lücke einen praktischen Angriff macht.
Im Glossar lesen- kein öffentlicher PoC bekannt
XIEM Effective CVSS
XIEM® ist das gestufte Managed-Security-Betriebsmodell von NEOSEC und eine eingetragene Marke der NEOSEC GmbH. Es erweitert klassisches SIEM — die zentrale Sammlung, Normalisierung und Korrelation sicherheitsrelevanter Ereignisse — um Endpunkt-Forensik, Netzwerk-Sichtbarkeit und Täuschungstechnik und führt diese zu drei aufeinander aufbauenden Stufen zusammen: Sentry, Orchestrate und Command.
Im Glossar lesen- 8,8 Methodik
CVSS v3
CVSS ist der weltweit verbreitete, offene Standard zur Bewertung der technischen Schwere einer Schwachstelle auf einer Skala von 0 bis 10. Er beschreibt, wie leicht eine Lücke ausnutzbar ist und welchen Schaden sie anrichten kann — nicht jedoch, wie wahrscheinlich ihre tatsächliche Ausnutzung ist. CVSS und das ergänzende EPSS beantworten bewusst unterschiedliche Fragen.
Im Glossar lesen- 8,8
KEV-Status
Der KEV-Katalog ist eine von der US-Behörde CISA gepflegte Liste von Schwachstellen, für die eine aktive Ausnutzung in der Praxis nachgewiesen ist. Er beantwortet nicht die Frage „wie schwer?“, sondern „wird es bereits angegriffen?“ — und priorisiert damit das Patchen scharf.
Im Glossar lesen- —
- Veröffentlicht
CWE
CWE ist ein Katalog typischer Schwächen-Arten in Software und Hardware — etwa fehlerhafte Eingabevalidierung, unsichere Speicherbehandlung oder mangelhafte Authentisierung. Während eine CVE eine konkrete Schwachstelle in einem konkreten Produkt benennt, beschreibt eine CWE die zugrunde liegende Fehlerklasse.
Im Glossar lesen- CWE-78
Erkennungsregeln
Für diese Schwachstelle liegt noch keine NEOSEC-Erkennungsregel vor.
Einordnung nach NIS2 und CRA
Regelbasierte Einordnung aus Ausnutzungsstatus und Schweregrad. Sie ersetzt keine Prüfung im Einzelfall.
NIS2
NIS2 ist die EU-Richtlinie (EU) 2022/2555 zur Erhöhung des Cybersicherheitsniveaus in der Union. Sie weitet Pflichten gegenüber der ersten NIS-Richtlinie deutlich aus: mehr Sektoren, verbindliches Risikomanagement, gestufte Meldepflichten und persönliche Verantwortung der Geschäftsleitung.
Im Glossar lesen- Hohe technische Schwere: Bewerten und beheben Sie die Schwachstelle im Schwachstellenmanagement nach Art. 21 Abs. 2 lit. e NIS2 und dokumentieren Sie die Entscheidung.
CRA
Der CRA ist die EU-Verordnung (EU) 2024/2847 mit horizontalen Cybersicherheitsanforderungen an „Produkte mit digitalen Elementen“ — von Industriesteuerungen über Software bis zu vernetzten Verbrauchergeräten. Erstmals müssen Hersteller Sicherheit über den gesamten Produktlebenszyklus gewährleisten, Schwachstellen behandeln und Sicherheitsupdates bereitstellen.
Im Glossar lesen- Ab dem 11.12.2027 verpflichtet Anhang I Teil II CRA Hersteller betroffener Produkte mit digitalen Elementen, Schwachstellen unverzüglich zu behandeln und Sicherheitsupdates bereitzustellen.
ISO/IEC 27001
ISO/IEC 27001 ist der international führende Standard für ein Informationssicherheits-Managementsystem (ISMS). Er beschreibt einen risikobasierten, prozessorientierten Rahmen, um Informationssicherheit systematisch zu planen, umzusetzen, zu überprüfen und zu verbessern.
Im Glossar lesen- Maßnahme A.8.8, Management technischer Schwachstellen: Relevanz für Ihre Systeme bewerten, Behebung einplanen und nachweisen.
Beschreibung
Zusammenfassung
Atlantis überträgt den Terraform workspace-Wert aus einer Pull-Anfrage's atlantis.yaml in einen Shell-Befehl, ohne ihn zu zitieren oder zu escapen.
Ein Beitragender, dessen Pull-Anfrage für einen Atlantis-Plan berechtigt ist, kann Shell-Metazeichen im Workspace-Namen einfügen und als Atlantis-Dienstkonto beliebige Befehle ausführen. Dazu sind keine benutzerdefinierten Workflows, allow_custom_workflows, oder Berechtigungen zum Ausführen von terraform apply erforderlich.
Der ausgeführte Befehl erbt die Umgebung der Atlantis-Prozesse, die häufig Cloud-Anbieter-, Terraform- und Versionskontrollsystem-Credentials enthält.
Details
Überprüft gegen den aktuellen upstream/main-Commit 92ce5c51d1a050357e44df3535483425e59fa984 am August 13, 2026.
Der anfällige Datenfluss ist:
-
Der PR-gesteuerte Projekt-Workspace wird in
server/core/config/raw/project.govalidiert.Die Validierung lehnt nur
..,/, und\ab. Shell-Metazeichen wie;,#,$, Umleitungen und Leerzeichen bleiben erlaubt. -
Der Workspace wird direkt als Argument eines Terraform-Befehls in
server/core/runtime/workspace_step_runner_delegate.goübergeben:[]string{workspaceCmd, "select", ctx.Workspace} -
Terraform-Argumente werden zu einem einzigen String mit
strings.Join(args, " ")inserver/core/terraform/tfclient/terraform_client.gozusammengefügt:tfCmd := fmt.Sprintf("%s %s", binPath, strings.Join(args, " ")) -
Der resultierende String wird durch
sh -cinserver/core/terraform/tfclient/terraform_client.goausgeführt:cmd := exec.Command("sh", "-c", tfCmd)
Daher produziert ein Workspace wie:
poc;id;false;#
Befehle, die äquivalent zu sind:
terraform workspace select poc;id;false;#
terraform workspace new poc;id;false;#
raw.Project.Validate() wurde bestätigt, dass es für diesen Workspace-Wert keinen Fehler zurückgibt.
Atlantis dokumentiert, dass das Planen von nicht vertrauenswürdigem Terraform bereits gefährlich sein kann, da Anbieter und externe Datenquellen Code ausführen. Das spezifische Problem hier ist, dass ein gewöhnliches Projekt-Konfigurationsfeld zu Shell-Quelle wird, die explizite Kontrolle allow_custom_workflows umgeht und keinen bösartigen Anbieter, keine externe Datenquelle, keinen benutzerdefinierten Workflow oder keine Anwendungsoperation erfordert.
Die primäre Abhilfe sollte die Ausführung von Terraform mit einem Argumentvektor anstelle der Konstruktion von Shell-Quelle sein – zum Beispiel exec.Command(binaryPath, args...). Jede erforderliche Erweiterung von Umgebungsvariablen sollte ohne Aufruf einer Shell erfolgen. Eine strenge Validierung von Workspace-Namen würde auch eine Verteidigung in der Tiefe bieten.
PoC
Nur reproduzieren gegen eine austauschbare Atlantis-Instanz und Testrepository.
Voraussetzungen
- Atlantis verarbeitet
atlantis.yamlaus der Pull-Anfrage-Branch. - Die Pull-Anfrage ist berechtigt,
atlantis planauszuführen. - Für eine Fork-Pull-Anfrage muss der Server
--allow-fork-prsaktiviert haben. Eine Branch im gleichen Repository erfordert diese Flag nicht. - Keine benutzerdefinierten Workflows oder Anwendungs-Berechtigungen sind erforderlich.
Repository-Inhalte
Erstelle main.tf:
terraform {
required_version = ">= 1.0"
}
Erstelle atlantis.yaml:
version: 3
projects:
- name: workspace-rce-poc
dir: .
workspace: "poc;id;false;#"
autoplan:
enabled: false
Öffne eine Pull-Anfrage mit diesen Dateien und kommentiere:
atlantis plan -p workspace-rce-poc
Erwartetes Ergebnis
Atlantis führt zuerst terraform workspace select aus. Das injizierte false verursacht, dass dieser Befehl einen Fehler zurückgibt, sodass Atlantis es mit terraform workspace new erneut versucht.
Bei beiden Versuchen führt die Shell den Befehl id als separaten Befehl aus. Der zweite Fehler enthält die kombinierte Befehlsausgabe in der Atlantis-Fehlerantwort, die eine Ausgabe ähnlich der folgenden preisgibt:
uid=1000(atlantis) gid=1000(atlantis) groups=1000(atlantis)
Dies demonstriert die Ausführung beliebiger Shell-Befehle ohne Erstellung eines benutzerdefinierten Workflows oder Erreichen der Anwendungsphase.
Die Nutzlast verwendet nur id und false und greift keine Anmeldeinformationen ab, macht keine Netzwerkanfragen oder ändert den Host über das, was Terraform potenziell durch die Erstellung des austauschbaren poc Workspace tun könnte.
Auswirkungen
Dies ist eine Schwachstelle zur Befehlsinjektion im Betriebssystem, die zu einer Remote-Code-Ausführung als Atlantis-Dienstkonto führt.
Betroffene Bereitstellungen sind diejenigen, die:
- Pull-Anfrage-gesteuerte
atlantis.yaml-Projekt-Konfigurationen verarbeiten; und - Dem Angreifer-gesteuerten Pull-Anfrage erlauben, einen Atlantis-Plan auszulösen.
Mögliche Konsequenzen umfassen:
- Lesen und Exfiltration von Cloud-Anbieter-, Terraform- und Versionskontrollsystem-Credentials, die von der Atlantis-Prozessumgebung geerbt werden.
- Zugriff auf Terraform-Zustand, Plan-Dateien, Repository-Checkouts, Caches und andere Daten, die dem Atlantis-Benutzer zur Verfügung stehen.
- Änderung von Dateien oder Binärdateien, die dem Dienstkonto zugänglich sind.
- Netzwerkanfragen mit der Netzwerkidentität des Atlantis-Servers.
- Pivotieren in Infrastruktur, die über die Anmeldeinformationen oder die Netzwerkplatzierung des Servers zugänglich ist.
Für öffentliche Repositories sind willkürliche externe Beitragende direkt ausgesetzt, wenn --allow-fork-prs aktiviert ist. Ohne Unterstützung für Fork-Pull-Anfragen umfasst die anfällige Bevölkerung Benutzer, die berechtigte Pull-Anfragen im gleichen Repository erstellen können, und Angreifer, die solche Konten kontrollieren.
Originalquelle nur englisch verfügbar, maschinell ins Deutsche übersetzt.
Quelle: pwn.watch, OSV (Open Source Vulnerabilities), GitHub Security Advisories, cvelistv5, NVD (NIST), CVE.org (MITRE)
Betroffene Produkte
Betroffen sind die folgenden Versionen. Ältere Stände derselben Reihe sind ebenfalls verwundbar, sofern nicht anders angegeben.
| Betroffene Versionen | Behoben in | ||
|---|---|---|---|
| runatlantis | atlantis |
|
|
| go | github.com/runatlantis/atlantis |
|
|
Hersteller und Produkte
Weakness-Klassen (CWE)
CWE-78Improper Neutralization of Special Elements used in an OS Command ('OS Command Injection')
Base
The product constructs all or part of an OS command using externally-influenced input from an upstream component, but it does not neutralize or incorrectly neutralizes special elements that could modify the intended OS command when it is sent to a downstream component.
Eintrag bei MITRE CWE-78
Quellen & Referenzen
- pwn.watchpwn.watch: Atlantis 0.49.0 fixes 12 security flaws, including a critical forged-webhook fork-protection bypass that leads to remote code executionpwn-watch
- github.comGHSA-6mjf-4m52-m5cq: Unvalidated clone URL host enables fork-protection bypass and remote code executionpwn-watch
- github.comAtlantis v0.49.0 release notespwn-watch
- github.comAtlantis security advisoriespwn-watch
- github.comGHSA-rjh2-4xgw-p2hj: OS command injection through PR-controlled Terraform workspace enables RCE during planpwn-watch, x_refsource_CONFIRM, web
- github.comrunatlantis/atlantis/pull/6792x_refsource_MISC, web
- github.comrunatlantis/atlantis/commit/8dd22b4d0a9d7c129fdbf6a3398dd1c4cf8…x_refsource_MISC, web
- github.comrunatlantis/atlantis/commit/f04df0d53f0544d9eb6f5026dd8b74fbefd…x_refsource_MISC, web
- github.comrunatlantis/atlantis/releases/tag/v0.47.1x_refsource_MISC, web
- NVD (NIST)vuln/detail/CVE-2026-116676advisory
- github.comrunatlantis/atlantispackage
Änderungen an der CVE
Wer diese CVE wann geändert hat: die NVD (Analyse, betroffene Produkte, CVSS), der Herausgeber der CVE (CNA) und ergänzende Stellen wie CISA (ADP).
Neu erfasstGitHub
CVSS V3.1: AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Schwachstellentyp: CWE-78
Beschreibung erfasst oder geändert
Neue Referenzen:- https://github.com/runatlantis/atlantis/commit/8dd22b4d0a9d7c129fdbf6a3398dd1c4cf8c3a59
- https://github.com/runatlantis/atlantis/commit/f04df0d53f0544d9eb6f5026dd8b74fbefd82ac8
- https://github.com/runatlantis/atlantis/pull/6792
- https://github.com/runatlantis/atlantis/releases/tag/v0.47.1
und 1 weitere Referenz
9 Einzeländerungen im Original anzeigen
Einzeländerungen dieses Ereignisses im Original der NVD Art Aktion Vorher Nachher Beschreibung ergänzt —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.CVSS ergänzt —AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:HSchwachstellentyp (CWE) ergänzt —CWE-78Betroffene Versionen (Herausgeber) ergänzt —New affected value received. <a href="https://github.com/CVEProject/cvelistV5/blob/main/cves/2026/116xxx/CVE-2026-116676.json">CVE-2026-116676</a>Referenz ergänzt —https://github.com/runatlantis/atlantis/commit/8dd22b4d0a9d7c129fdbf6a3398dd1c4cf8c3a59Referenz ergänzt —https://github.com/runatlantis/atlantis/commit/f04df0d53f0544d9eb6f5026dd8b74fbefd82ac8Referenz ergänzt —https://github.com/runatlantis/atlantis/pull/6792Referenz ergänzt —https://github.com/runatlantis/atlantis/releases/tag/v0.47.1Referenz ergänzt —https://github.com/runatlantis/atlantis/security/advisories/GHSA-rjh2-4xgw-p2hjKennung der Quelle: security-advisories@github.com
Badge einbetten
Zeigen Sie Schweregrad und KEV-Status dieser Schwachstelle auf Ihrer Seite – mit Link hierher. Das Bild wird stündlich aktualisiert.
<a href="https://intel.neosec.eu/cve/CVE-2026-116676"><img src="https://intel.neosec.eu/badge/cve/CVE-2026-116676.svg" alt="CVE-2026-116676 – NEOSEC Intel" height="20"></a>