Публикувани са коригиращи издания на уеб фреймворка 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 ще доведат до нарушаване на съвместимостта със странични бекенди за работа с БД.
Източник: opennet.ru
