
CVE-2012-1823 - Remote Code Execution (RCE) durch Argument Injection in PHP CGI
Schweregrad: Kritisch (CVSS 9.8)
CVE: CVE-2012-1823
Veröffentlicht: 11. Mai 2012
Betroffene Software: PHP im CGI-Modus (php-cgi)
Schwachstellentyp: Argumentinjektion / Remote Code Execution (RCE)
Angriffsvektor: Netzwerk
Erforderliche Authentifizierung: Keine
CVE-2012-1823 ist eine der bedeutendsten jemals in PHP entdeckten Remote-Code-Execution-Sicherheitslücken. Die Schwachstelle betrifft PHP-Installationen, die für die Ausführung über die Common Gateway Interface (CGI) konfiguriert sind, und ermöglicht einem nicht authentifizierten Angreifer, beliebigen PHP-Code remote auszuführen.
Im Gegensatz zu Sicherheitslücken, die Schwachstellen innerhalb einer Webanwendung erfordern, besteht dieses Problem in PHP selbst, wenn es über php-cgi bereitgestellt wird. Da die Schwachstelle auf Interpreter-Ebene existiert, ist jede PHP-Anwendung, die auf einem betroffenen Server gehostet wird, verwundbar, unabhängig davon, ob die Anwendung Programmierfehler enthält.
Die Schwachstelle wurde 2012 aufgrund ihrer Einfachheit, Zuverlässigkeit und der weit verbreiteten Ausnutzung im Internet stark publik gemacht. Selbst Jahre nach der Offenlegung identifizieren internetweite Scans weiterhin verwundbare Systeme, und die Schwachstelle ist weiterhin in Exploitation-Frameworks und defensiven Erkennungswerkzeugen enthalten. :contentReference[oaicite:0]{index=0}
Die Schwachstelle befindet sich in der CGI-Implementierung von PHP (php-cgi).
Normalerweise sind HTTP-Abfrageparameter dazu gedacht, als Benutzereingaben an PHP-Skripte übergeben zu werden.
Allerdings verarbeitet PHP speziell konstruierte Abfragezeichenfolgen falsch, die kein Gleichheitszeichen (=) enthalten.
Anstatt die Abfragezeichenfolge ausschließlich als Benutzerdaten zu behandeln, interpretiert PHP Teile davon fälschlicherweise als Kommandozeilenargumente, die direkt an die PHP-Executable übergeben werden.
Da PHP zahlreiche Kommandozeilenoptionen unterstützt (wie -d), kann ein Angreifer die Laufzeitkonfiguration von PHP während der Anfrageverarbeitung überschreiben.
Dies ermöglicht dem Angreifer:
Die Ursache liegt in einer unsachgemäßen Behandlung von php_getopt() in:
sapi/cgi/cgi_main.c
Konkret gelang es PHP nicht, die Kommandozeilenanalyse beim Verarbeiten bösartiger Abfragezeichenfolgen ohne Gleichheitszeichen (=) korrekt zu ignorieren. :contentReference[oaicite:1]{index=1}
Die CGI-Executable akzeptiert Kommandozeilenparameter.
Zum Beispiel:
php-cgi -d allow_url_include=1
Normalerweise sollten diese Parameter ausschließlich vom Betriebssystem stammen.
Stattdessen erlaubte PHP es HTTP-Anfragen fälschlicherweise, diese Parameter über speziell gestaltete URLs einzuschleusen.
Der Angreifer konnte daher die PHP-Laufzeitkonfiguration manipulieren, bevor das Zielskript ausgeführt wurde.
Dies verwandelte eine einfache HTTP-Anfrage effektiv in eine Kommandozeilenausführung gegen php-cgi.
Die folgenden PHP-Versionen sind verwundbar:
| Version | Status |
|---|---|
| PHP < 5.3.12 | Verwundbar |
| PHP 5.4.x < 5.4.2 | Verwundbar |
Nur Installationen mit CGI-Modus (php-cgi) sind betroffen.
PHP, das wie folgt ausgeführt wird:
ist von CVE-2012-1823 selbst im Allgemeinen nicht betroffen. :contentReference[oaicite:2]{index=2}
Ein Angreifer benötigt lediglich:
Die Schwachstelle ist vollständig remote ausnutzbar.
Der Angriff folgt typischerweise diesen Phasen:
Sobald die Codeausführung erreicht ist, tun Angreifer typischerweise Folgendes:
Eine erfolgreiche Ausnutzung führt zur vollständigen Kompromittierung der PHP-Anwendung.
Mögliche Konsequenzen sind:
Wenn PHP mit erhöhten Privilegien ausgeführt wird, ist auch eine Kompromittierung auf Systemebene möglich.
| Metrik | Wert |
|---|---|
| Basis-Score | 9.8 |
| Schweregrad | Kritisch |
| Angriffsvektor | Netzwerk |
| Angriffskomplexität | Niedrig |
| Erforderliche Privilegien | Keine |
| Benutzerinteraktion | Keine |
| Vertraulichkeit | Hoch |
| Integrität | Hoch |
| Verfügbarkeit | Hoch |
Mehrere Eigenschaften machten CVE-2012-1823 besonders wirkungsvoll:
Die Kombination aus einfacher Ausnutzbarkeit und schwerwiegenden Auswirkungen führte zu umfangreichen realen Angriffen und zur Aufnahme in den Katalog der bekannten ausgenutzten Sicherheitslücken (KEV) von CISA. :contentReference[oaicite:4]{index=4}
Administratoren sollten Folgendes überprüfen:
Zu den Indikatoren gehören:
Sicherheitsscanner wie Nuclei, Nessus, OpenVAS und Metasploit-Module können verwundbare Konfigurationen erkennen. :contentReference[oaicite:5]{index=5}
Empfohlene Maßnahmen umfassen:
| Datum | Ereignis |
|---|---|
| Mai 2012 | Öffentliche Offenlegung der Schwachstelle |
| Mai 2012 | Veröffentlichung von Sicherheitspatches |
| 2012 | Veröffentlichung öffentlicher Exploits |
| 2012 | Metasploit-Modul veröffentlicht |
| Folgejahre | Massenhafte Ausnutzung im Internet beobachtet |
| Heute | Erscheint weiterhin in Schwachstellenscans und auf Altsystemen |
Dieses Repository ist ausschließlich für Bildungszwecke, Sicherheitsforschung, Schwachstellenanalyse und defensive Tests bestimmt. Alle hierin enthaltenen Informationen sollten nur auf Systemen verwendet werden, für die Sie ausdrücklich autorisiert wurden. Die unbefugte Ausnutzung verwundbarer Systeme ist illegal und unethisch.