Zusammenfassung
Unser Sicherheitsforschungsteam hat entdeckt, dass CVE-2023-0568eine Schwachstelle in der Pufferzuweisung, die offiziell nur PHP 8+ Versionen betrifft, sich auch auf Installationen der PHP 7 Serie (unter Windows und Linux) auswirkt. Diese Entdeckung hat erhebliche Auswirkungen auf Unternehmen, die PHP 7 noch in Produktionsumgebungen einsetzen, insbesondere da diese Version ihren End-of-Life-Status (EOL) erreicht hat und keine offiziellen Sicherheitsupdates mehr erhält.
8.1 CVSS 3.x von NVD
7.5 CVSS 3.x von PHP-Gruppe
Die Anfälligkeit erklärt
CVE-2023-0568 ist eine Off-by-One-Puffer-Zuordnung Fehler in PHP-Kern-Pfad-Auflösung Funktion. Bei der Auflösung von Pfaden, deren Länge sich der MAXPATHLEN-Einstellung des Systems nähert, weist die Funktion einen Puffer zu, der ein Byte zu klein ist. Dies führt dazu, dass das Byte, das unmittelbar auf den zugewiesenen Puffer folgt, mit einem NULL-Wert überschrieben wird.
Auch wenn dies auf den ersten Blick eine Kleinigkeit zu sein scheint, stellt es doch ein ernsthaftes Sicherheitsproblem dar:
- Die Schwachstelle kann zu unbefugtem Datenzugriff oder -änderung führen
- Unter bestimmten Bedingungen kann dies zu Denial-of-Service (DoS) führen.
- Stack-Überschreibungen, selbst wenn sie begrenzt sind, können Möglichkeiten für komplexere Ausbeutungsketten schaffen.
PHP 7: Immer noch verwundbar, aber offiziell nicht unterstützt
Die offizielle Beratung für CVE-2023-0568 gibt an, dass es betrifft:
- PHP 8.0x vor 8.0.28
- PHP 8.1x vor 8.1.16
- PHP 8.2x vor 8.2.3
Unser Sicherheitsforschungsteam hat jedoch bestätigt, dass auch Installationen der PHP 7-Serie für dieses Problem anfällig sind. Dies schafft eine erhebliche Sicherheitslücke für Unternehmen, die noch PHP 7 einsetzen, da:
- PHP 7 hat den EOL-Status erreicht
- Es sind keine offiziellen Patches von den PHP-Maintainern verfügbar.
- Diese Sicherheitslücke bleibt in allen PHP 7-Installationen unbehandelt.
Technische Details
Die Sicherheitslücke besteht im Pfadauflösungscode von PHP, der an mehreren Stellen diesem Muster folgt:
| // Weist Puffer mit maximaler Größe von MAXPATHLEN zu char aufgelöster_pfad[MAXPATHLEN]; // Wenn der Pfad nicht mit einem Schrägstrich endet und einer angehängt werden muss // Ein NUL-Zeichen könnte in den Index MAXPATHLEN geschrieben werden // Dies führt zu einem Ein-Byte-Pufferüberlauf |
Wenn sich die Pfadlänge MAXPATHLEN nähert, ordnet der Code einen Puffer zu, der ein Byte zu klein ist. Wenn der Pfad nicht mit einem Schrägstrich endet und ein solcher angehängt werden muss, schreibt der Code über den zugewiesenen Puffer hinaus und überschreibt ein Stack-Byte.
Ein isoliertes Überschreiben des Stacks mit einem Byte mag zwar unbedeutend erscheinen, kann aber unter den richtigen Umständen schwerwiegende Auswirkungen auf die Sicherheit haben:
- Das Überschreiben von Stack-Daten kann benachbarte Variablen beschädigen
- Sie kann möglicherweise den Kontrollfluss des Programms beeinflussen.
- In Kombination mit anderen Schwachstellen könnte dies zu raffinierteren Angriffen beitragen.
Unsere Lösung: Endloser Lifecycle-Support für PHP 7
Wir wissen, dass die Migration von PHP 7 auf neuere Versionen aufgrund von Anwendungskompatibilität, Ressourcenbeschränkungen oder anderen geschäftlichen Faktoren nicht immer sofort machbar ist. Deshalb bieten wir an:
- Individuelle Sicherheits-Patches: Wir haben Patches für PHP 7 entwickelt, die CVE-2023-0568 und andere bekannte Sicherheitslücken schließen.
- Aktualisierte PHP 7 Pakete: Verfügbar für Windows- und Linux-Umgebungen
- Laufende Sicherheitsunterstützung: Kontinuierliche Überwachung und Patching neu entdeckter Sicherheitslücken in PHP 7
Empfohlene Maßnahmen
Wenn Ihr Unternehmen noch mit PHP 7 arbeitet, empfehlen wir:
- Bewerten Sie Ihre Exposition: Prüfen Sie, ob Ihre Anwendungen für Pfadmanipulationen anfällig sind, die diese Sicherheitslücke auslösen könnten.
- Unsere gepatchten Pakete anwenden: Installieren Sie unsere sicherheitsgepatchten PHP 7-Pakete, um diese Sicherheitslücke zu entschärfen
Schlussfolgerung
Sicherheitslücken machen keinen Halt vor dem Ende des Supportzyklus. CVE-2023-0568 ist ein Paradebeispiel dafür, wie Sicherheitsprobleme Software auch nach Ablauf des offiziellen Supportzyklus beeinträchtigen können. Unsere erweiterten Support-Services für PHP 7 sowie für anstehende Ereignisse wie das Ende des Supportzyklus für PHP 8.3 Ende 2027 versorgen Unternehmen mit den erforderlichen Sicherheitspatches, während sie ihre Migrationsstrategie nach ihrem eigenen Zeitplan planen können.
