Опубликованы корректирующие выпуски 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 изменения приведут к нарушению совместимости со сторонними бэкендами для работы с БД.