HochCVE-2026-116676

    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..*

    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:

    1. Der PR-gesteuerte Projekt-Workspace wird in server/core/config/raw/project.go validiert.

      Die Validierung lehnt nur .., /, und \ ab. Shell-Metazeichen wie ;, #, $, Umleitungen und Leerzeichen bleiben erlaubt.

    2. Der Workspace wird direkt als Argument eines Terraform-Befehls in server/core/runtime/workspace_step_runner_delegate.go übergeben:

      []string{workspaceCmd, "select", ctx.Workspace}
      
    3. Terraform-Argumente werden zu einem einzigen String mit strings.Join(args, " ") in server/core/terraform/tfclient/terraform_client.go zusammengefügt:

      tfCmd := fmt.Sprintf("%s %s", binPath, strings.Join(args, " "))
      
    4. Der resultierende String wird durch sh -c in server/core/terraform/tfclient/terraform_client.go ausgefü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.yaml aus der Pull-Anfrage-Branch.
    • Die Pull-Anfrage ist berechtigt, atlantis plan auszuführen.
    • Für eine Fork-Pull-Anfrage muss der Server --allow-fork-prs aktiviert 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 Produkte
    Betroffene VersionenBehoben in
    runatlantisatlantis
    • ≥ 0.4.0, < 0.47.1
    • —
    gogithub.com/runatlantis/atlantis
    • >= 0.4.0, <= 0.47.0
    • 0.4.0
    • 0.47.1
    • 0.47.1

    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).

    1. Neu erfasstGitHub

      9 Einzeländerungen im Original anzeigen
      Einzeländerungen dieses Ereignisses im Original der NVD
      ArtAktionVorherNachher
      Beschreibungergä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.
      CVSSergänzt
      —
      AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
      Schwachstellentyp (CWE)ergänzt
      —
      CWE-78
      Betroffene 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>
      Referenzergänzt
      —
      https://github.com/runatlantis/atlantis/commit/8dd22b4d0a9d7c129fdbf6a3398dd1c4cf8c3a59
      Referenzergänzt
      —
      https://github.com/runatlantis/atlantis/commit/f04df0d53f0544d9eb6f5026dd8b74fbefd82ac8
      Referenzergänzt
      —
      https://github.com/runatlantis/atlantis/pull/6792
      Referenzergänzt
      —
      https://github.com/runatlantis/atlantis/releases/tag/v0.47.1
      Referenzergänzt
      —
      https://github.com/runatlantis/atlantis/security/advisories/GHSA-rjh2-4xgw-p2hj

      Kennung 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.

    Badge-Vorschau für CVE-2026-116676
    <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>