Wird dein PHP→Server zur Shell?
CVE-2024-4577 erlaubt auf Windows-Systemen mit PHP im CGI-Modus eine vollständige Remote Code Execution — über eine Eigenheit der Windows-Zeichensatz-Konvertierung. Prüfe in Sekunden, ob dein Server betroffen sein könnte.
Nicht-intrusiv: Der Checker sendet keinen Exploit. Er stellt eine normale Anfrage und liest nur die Versions-Header aus.
Was passiert bei CVE-2024-4577?
Entdeckt von Orange Tsai (DEVCORE), veröffentlicht am 6. Juni 2024. Der Kern
ist eine Argument Injection in php-cgi.exe auf Windows.
- 1
Soft-Hyphen
Angreifer schickt in der Query ein Soft-Hyphen-Zeichen
0xADstatt eines normalen Bindestrichs. - 2
Best-Fit-Mapping
Windows wandelt
0xADbei der Codepage-Konvertierung in ein echtes-um. - 3
Argument Injection
Aus dem Bindestrich werden CLI-Flags für PHP, z. B.
-d auto_prepend_file=php://input. - 4
Code Execution
PHP führt den mitgeschickten Code aus — der Angreifer hat eine Shell.
Bin ich betroffen?
Nur unter diesen Bedingungen
- Windows als Betriebssystem
- PHP im CGI-Modus oder exponierte
php.exe(XAMPP-Default) - Linux/Unix ist für diese Lücke nicht betroffen
Betroffene Versionen
| Zweig | Betroffen | Patch ab |
|---|---|---|
| 8.3.x | < 8.3.8 | 8.3.8 |
| 8.2.x | < 8.2.20 | 8.2.20 |
| 8.1.x | < 8.1.29 | 8.1.29 |
| ≤ 8.0 | betroffen | End-of-Life |
Was tun?
Jetzt
- Auf 8.3.8 / 8.2.20 / 8.1.29 (oder neuer) aktualisieren.
- PHP-CGI nicht benötigt? Auf PHP-FPM / mod_php umstellen und
php-cgi.exeaus dem CGI-Verzeichnis entfernen. - XAMPP: exponierte
php.exeimcgi-binsperren.
Nicht patchbar? Header selbst prüfen
Wenn die PHP-Version per Header versteckt ist, prüfe lokal:
php -v
# und: läuft php-cgi? -> Umstellung auf FPM prüfen
Oder die Header aus der Ferne sehen:
curl -sI https://deine-domain.de | grep -iE 'server|x-powered-by'
Zeit zum Patchen kaufen
Die Link11 WAAP blockt den Angriffsvektor am Netzwerkrand — Requests mit Soft-Hyphen-Injection werden regelbasiert gefiltert, bevor sie PHP erreichen. So bleibt die Lücke verschlossen, auch während das Upgrade läuft.