Vulnérabilité dans le framework web Django pouvant conduire à une substitution SQL

Des versions correctives du framework Web Django 4.0.6 et 3.2.14 ont été publiées, qui corrigent une vulnérabilité (CVE-2022-34265) qui vous permet potentiellement de remplacer votre code SQL. Le problème affecte les applications qui utilisent des données externes non vérifiées dans les paramètres kind et lookup_name transmis aux fonctions Trunc(kind) et Extract(lookup_name). Les programmes qui autorisent uniquement les données vérifiées dans les valeurs lookup_name et kind ne sont pas affectés par la vulnérabilité.

Le problème a été bloqué en interdisant l'utilisation de caractères autres que les lettres, les chiffres, "-", "_", "(" et ")" dans les arguments des fonctions Extract et Trunc. Auparavant, le guillemet simple n'était pas coupé dans les valeurs transmises, ce qui permettait d'exécuter vos constructions SQL en passant des valeurs comme "day' FROM start_datetime)) OR 1=1;—" et "year', start_datetime) ) OU 1=1;—“. Dans la prochaine version 4.1, il est prévu de renforcer encore la protection des méthodes d'extraction et de troncature de dates, mais les modifications apportées à l'API entraîneront une rupture de compatibilité avec les backends de bases de données tierces.

Source: opennet.ru

Ajouter un commentaire