14.08.2022

Уязвимость в web-фреймворке Django, которая может привести к подстановке SQL-кода

Опубликованы корректирующие выпуски web-фреймворка Django 4.0.6 и 3.2.14, в которых устранена уязвимость (CVE-2022-34265), потенциально позволяющая выполнить подстановку своего SQL-кода. Проблема затрагивает приложения, использующие непроверенные внешние данные в параметрах kind и lookup_name, передаваемых в функции Trunc(kind) и Extract(lookup_name). Программы, которые допускают в значениях lookup_name и kind только проверенные данные уязвимость не затрагивает.

Проблема блокирована через запрет использования в аргументах функций Extract и Trunc символов отличных от букв, цифр, «-«, «_», «(» и «)». Ранее в передаваемых значениях не вырезалась одинарная кавычка, что позволяло выполнить свои SQL-конструкции через передачу значений вида «day’ FROM start_datetime)) OR 1=1;—» и «year’, start_datetime)) OR 1=1;—«. В следующем выпуске 4.1 планируется дополнительно усилить защиту методов извлечения и усечения дат, но внесённые в API изменения приведут к нарушению совместимости со сторонними бэкендами для работы с БД.

Источник.