PHP 7 anfällig für schwerwiegende SQL-Injection-Schwachstelle CVE-2022-31631

Die „php2shell“-Patches (CVE-2026-109618 und CVE-2026-109619) für PHP am Ende des Lebenszyklus (EOL) sind nun verfügbar. Da die Antworten des Vertriebs aufgrund der hohen Nachfrage derzeit langsamer als gewöhnlich ausfallen, ist der schnellste Weg zu den gepatchten Paketen der Online-Kauf von ELS für Runtimes (wird in einem neuen Tab geöffnet). Lesen Sie die FAQ zu den Patches

Gehen Sie direkt zu einer KI-Zusammenfassung dieses Blogbeitrags

  • Fasse diesen Beitrag mit Perplexity zusammen
  • Fasse diesen Beitrag mit Gemini zusammen

Zusammenfassung

 

Unser Sicherheitsforschungsteam hat entdeckt, dass CVE-2022-31631, eine kritische SQL-Injection-Schwachstelle mit einem CVSS 3-Wert von 9.1PHP 7-Installationen (unter Windows und Linux) betrifft, obwohl in den offiziellen Hinweisen nur PHP 8+ Versionen erwähnt werden. Diese hochgradig gefährliche Schwachstelle ermöglicht es Angreifern, die SQL-Sanitization im PDO-SQLite-Treiber zu umgehen, was zu einer Gefährdung der Datenbank führen kann. Besonders besorgniserregend ist der Zeitpunkt dieser Enthüllung, die kurz nach dem Auslaufen von PHP 7 erfolgte, so dass viele Unternehmen anfällig sind und kein offizieller Patch zur Verfügung steht.

Die Anfälligkeit erklärt

 

CVE-2022-31631 ist eine schwerwiegende Sicherheitslücke, die die PDO::quote()-Funktion bei der Verwendung mit SQLite-Datenbanken betrifft. Wenn dieser Funktion eine zu lange Zeichenkette übergeben wird, kommt es zu einem Integer-Überlauf, der den Treiber veranlasst, die Daten falsch zu bereinigen. Diese unsachgemäße Bereinigung kann zu folgenden Problemen führen:

  1. SQL-Injection-Schwachstellen
  2. Unbefugter Zugriff auf Datenbankinhalte
  3. Datenmanipulation oder -vernichtung
  4. Potenzial für eine vollständige Systemkompromittierung
  5. Bedingungen für die Dienstverweigerung

Die Kritikalität dieser Schwachstelle spiegelt sich in der CVSS-Wertung von 9.1 wider, die sie als "kritisches" Risiko einstuft, das sofortige Aufmerksamkeit erfordert.

PHP 7: Verwundbar und übersehen

 

Im offiziellen Advisory zu CVE-2022-31631 werden nur diese betroffenen Versionen erwähnt:

  • PHP 8.0x vor 8.0.27
  • PHP 8.1x vor 8.1.15
  • PHP 8.2x vor 8.2.2

Unsere umfassenden Sicherheitstests haben jedoch bestätigt, dass auch Installationen der PHP 7-Serie für diesen SQL-Injection-Fehler anfällig sind. Dies schafft eine erhebliche Sicherheitslücke für Unternehmen, die noch PHP 7 einsetzen, da:

  1. PHP 7 erreichte den EOL-Status kurz bevor diese Sicherheitslücke bekannt wurde.
  2. Es sind keine offiziellen Patches von den PHP-Maintainern verfügbar.
  3. Die Sicherheitslücke betrifft eine häufig genutzte Datenbankfunktionalität

Technische Details und Angriffsszenario

 

Die Sicherheitslücke tritt im Quoting-Mechanismus des PDO-SQLite-Treibers auf. Wenn eine Anwendung die Funktion PDO::quote() verwendet, um Benutzereingaben zu bereinigen, bevor sie in eine SQL-Abfrage aufgenommen werden (eine gängige Sicherheitspraxis), kann die Funktion extrem lange Zeichenketten nicht richtig verarbeiten.

Hier ist eine vereinfachte Erklärung, wie ein Angriff ablaufen könnte:

  1. Ein Angreifer identifiziert eine Webanwendung, die PHP mit PDO SQLite
  2. Sie geben eine ungewöhnlich lange Zeichenfolge in ein anfälliges Eingabefeld ein
  3. Die Anwendung übergibt diese Zeichenfolge zur Bereinigung an PDO::quote()
  4. Aufgrund eines Integer-Überlaufs kann die Quoting-Funktion die Zeichenkette nicht richtig entschlüsseln
  5. Die fehlerhafte Eingabe führt zu einer SQL-Injection, die es dem Angreifer ermöglicht, beliebige SQL-Befehle auszuführen.

Eine anfällige Anwendung könnte zum Beispiel ähnlichen Code enthalten:


// Angreifbar Code Muster

$userInput = $_POST['user_input']; // Angreifer-gesteuert Eingabe

$db = neu PDO('sqlite:database.sqlite');

$safeInput = $db->quote($userInput); // Angreifbar wenn Eingabe ist extrem lang ist

$Abfrage = "SELECT * FROM benutzer WHERE name = $safeInput";

 

Wenn in diesem Szenario $userInput eine bestimmte Länge überschreitet, schlägt die Bereinigung fehl und ermöglicht möglicherweise eine SQL-Injektion, obwohl der Entwickler versucht hat, angemessene Sicherheitspraktiken anzuwenden.

Risikoverstärkende Faktoren

 

Mehrere Faktoren machen diese Schwachstelle besonders besorgniserregend:

  1. Hoher CVSS-Score (9.1): Weist auf ein kritisches Sicherheitsproblem mit schwerwiegenden potenziellen Auswirkungen hin
  2. Zeitpunkt der Offenlegung: Die Veröffentlichung erfolgte kurz nach dem Auslaufen von PHP 7, so dass es für die Nutzer keinen offiziellen Weg zur Behebung gab.
  3. Gemeinsame Funktionalitäten: PDO wird häufig für Datenbankoperationen in PHP-Anwendungen verwendet
  4. Falsches Gefühl der Sicherheit: Entwickler glauben, dass sie sich durch die Verwendung von PDO::quote() vor SQL-Injection schützen
  5. Eingeschränktes Bewußtsein: In den meisten Sicherheitsbulletins wird die Schwachstelle von PHP 7 nicht erwähnt.

Unsere Lösung: Endloser Lifecycle-Support für PHP 7

 

In Anbetracht der kritischen Natur dieser Sicherheitslücke und ihrer Auswirkungen auf PHP 7-Benutzer, bietet unser Unternehmen:

  1. Gepatchte PHP 7 Pakete: Wir haben PHP 7-Pakete entwickelt und gründlich getestet, die die Sicherheitslücke CVE-2022-31631 beheben
  2. Plattformübergreifende Unterstützung: Unsere gepatchten Pakete sind sowohl für Windows- als auch für Linux-Umgebungen verfügbar.
  3. Umfassende Sicherheitsabdeckung: Unser erweiterter Support deckt nicht nur diese Sicherheitslücke ab, sondern alle bekannten Sicherheitsprobleme, die PHP 7 betreffen.

Empfohlene Abhilfestrategien

 

Wenn Ihr Unternehmen PHP 7 mit PDO SQLite verwendet, empfehlen wir die folgenden Sofortmaßnahmen:

  1. Unsere Sicherheits-Patches anwenden: Installieren Sie unsere gepatchten PHP 7-Pakete zum Schutz vor dieser Sicherheitslücke
  2. Parametrisierte Abfragen verwenden: Wechseln Sie zu vorbereiteten PDO-Anweisungen, anstatt sich auf die Funktion quote() zu verlassen:

$stmt = $db->prepare("SELECT * FROM benutzer WHERE name = ?");$stmt->execute([$userInput]);

  1. Eingabe-Längen-Prüfung implementieren: Beschränken Sie die Länge von Benutzereingaben auf vernünftige Werte
  2. Datenbankberechtigungen berücksichtigen: Wenden Sie das Prinzip der geringsten Berechtigung auf Datenbankbenutzer an.

 

Schlussfolgerung

 

CVE-2022-31631 stellt einen perfekten Sturm von Sicherheitsrisikofaktoren dar: eine kritische SQL-Injektionsschwachstelle, die kurz nach dem Erreichen des EOL-Status von PHP 7 bekannt wurde und einen gängigen Sicherheitsmechanismus betrifft, auf den sich Entwickler verlassen. Unternehmen, die PHP 7 einsetzen, stehen vor der schwierigen Wahl zwischen einer sofortigen Migration (mit potenziellen Kompatibilitätsproblemen) oder dem weiteren Betrieb anfälliger Systeme.

Unser erweiterter PHP 7-Support bietet eine dritte Option: Sie können Ihre PHP 7-Anwendungen weiterhin bedenkenlos einsetzen, denn Sie wissen, dass kritische Sicherheitslücken wie CVE-2022-31631 durch unsere Sicherheitspatches geschlossen wurden.

 

Zusammenfassung
PHP 7 anfällig für schwerwiegende SQL-Injection-Schwachstelle CVE-2022-31631
Artikel Name
PHP 7 anfällig für schwerwiegende SQL-Injection-Schwachstelle CVE-2022-31631
Beschreibung
CVE-2022-31631, eine kritische SQL-Injection-Schwachstelle mit einem CVSS 3 Score von 9.1, betrifft PHP 7-Installationen. Lesen Sie mehr über unsere Entdeckung
Autor
Name des Herausgebers
TuxCare
Logo des Herausgebers

Schließen Sie sich 4.500+ Linux- und Open-Source-Experten an!

2x im Monat. Kein Spam.

Inhaltsübersicht
Holen Sie sich die Open-Source-Sicherheitslösungen, die Sie brauchen

Schließen Sie sich 4.500+ Linux- und Open-Source-Experten an!

2x im Monat. Kein Spam.