Es wurden Korrekturversionen des Web-Frameworks Django 4.0.6 und 3.2.14 veröffentlicht, in denen eine Sicherheitsanfälligkeit (CVE-2022-34265) behoben wurde, die es potenziell erlaubt, eigenen SQL-Code einzuschleusen. Das Problem betrifft Anwendungen, die nicht validierte externe Daten in den Parametern kind und lookup_name verwenden, die an die Funktionen Trunc(kind) und Extract(lookup_name) übergeben werden. Programme, die nur validierte Daten in den Werten von lookup_name und kind zulassen, sind von dieser Sicherheitsanfälligkeit nicht betroffen.
Das Problem wurde durch ein Verbot von Zeichen, die keine Buchstaben, Ziffern, «-«, «_», «(» und «)» sind, in den Argumenten der Funktionen Extract und Trunc blockiert. Zuvor wurde das einfache Anführungszeichen in den übergebenen Werten nicht entfernt, was die Ausführung eigener SQL-Konstrukte durch Werte wie «day’ FROM start_datetime)) OR 1=1;—» und «year’, start_datetime)) OR 1=1;—» ermöglichte. In der nächsten Version 4.1 ist geplant, den Schutz der Methoden zur Extraktion und Verkürzung von Daten weiter zu verstärken, jedoch werden die Änderungen in der API zu einer Inkompatibilität mit externen Backends für die Datenbankinteraktion führen.
Quelle: opennet.ru
