Eine kritische Sicherheitslücke (CVE-2022-31631) in PHPs PDO_SQLite-Komponente wurde veröffentlicht. In betroffenen PHP-Versionen (8.0.x vor 8.0.27, 8.1.x vor 8.1.15 und 8.2.x vor 8.2.2) kann die Funktion PDO::quote() bei der Verarbeitung von benutzerdefinierten, überlangen Strings einen unzureichend zitierten String zurückliefern – konkret lediglich ein einzelnes Apostroph.
Der Fehler entsteht durch einen nicht abgefangenen Integer-Overflow in der Funktion sqlite3_snprintf(), bei der ein unverhältnismäßig großer Längenwert (zend_long) an eine int-Variable übergeben wird. Insbesondere auf 64-Bit-Systemen führt dies zu einem Überlauf, der den Sicherheitsmechanismus unterläuft und somit potenziell zu SQL-Injection-Angriffen führen kann.
Ein beispielhafter Testscript demonstriert den Fehler:
<?php
$pdo = new PDO("sqlite::memory:");
$string = str_repeat("a", 0x80000000);
var_dump($pdo->quote($string));
?>
Während hier ein ordnungsgemäß quotierter String oder ein Fehler erwartet wird, liefert die Funktion lediglich ein einzelnes Apostroph zurück.
Nutzer und Administratoren sollten dringend auf neuere PHP-Versionen aktualisieren, um diese kritische Schwachstelle auszuschließen.
Professionelle Hilfe erwünscht?
Sentiguard ist spezialisiert auf Notfallhilfe nach Cyberattacken, IT Sicherheitsbeauftragte und IT Sicherheitskonzepte nach BSI Standard. Haben Sie Fragen und wünschen Sie unverbindliche Beratung, dann melden Sie sich gerne bei uns: