Vulnerabilidad en el framework web Django que puede llevar a la sustitución de SQL

Se han publicado versiones correctivas del marco web Django 4.0.6 y 3.2.14, que corrigen una vulnerabilidad (CVE-2022-34265) que potencialmente le permite sustituir su código SQL. El problema afecta a las aplicaciones que utilizan datos externos no verificados en los parámetros kind y lookup_name pasados ​​a las funciones Trunc(kind) y Extract(lookup_name). Los programas que solo permiten datos verificados en los valores lookup_name y kind no se ven afectados por la vulnerabilidad.

El problema se bloqueó prohibiendo el uso de caracteres distintos de letras, números, “-”, “_”, “(” y “)” en los argumentos de las funciones Extract y Trunc. Anteriormente, las comillas simples no se eliminaban en los valores transmitidos, lo que hacía posible ejecutar sus construcciones SQL pasando valores como "día' DE start_datetime)) O 1=1;—" y "year', start_datetime) ) O 1=1;—“. En la próxima versión 4.1, se planea fortalecer aún más la protección de los métodos de extracción y truncamiento de fechas, pero los cambios realizados en la API provocarán una falla en la compatibilidad con los backends de bases de datos de terceros.

Fuente: opennet.ru

Añadir un comentario