Pull to refresh

Разработчики Django исправили уязвимость, которая может привести к подстановке стороннего SQL-кода

Reading time 1 min
Views 2.7K

Разработчики опубликовали корректирующие выпуски фреймворка Django 4.0.6 и 3.2.14, в которых устранили уязвимость CVE-2022-34265. Она потенциально позволяла выполнить подстановку своего SQL-кода. 

Потенциальная уязвимость SQL Injection существовала в основной ветке Django, а также в версиях 4.1 (в настоящее время в бета-версии), 4.0 и 3.2. Проблема затрагивала приложения, использующие непроверенные внешние данные в параметрах 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 приведут к нарушению совместимости со сторонними бэкендами для работы с базами данных.

Tags:
Hubs:
+3
Comments 0
Comments Leave a comment

Other news