3 вересня 2025 року розробники Django повідомили про виправлення вразливості SQL-ін'єкції в псевдонімах стовпців FilteredRelation, яка виникала при використанні спеціально сформованих словників у методах QuerySet.annotate() або QuerySet.alias().
Проблема, оприлюднена 3 вересня 2025 року, пов'язана з компонентом FilteredRelation. Вразливість виникала при передачі спеціально сформованих словників через аргумент **kwargs у методах QuerySet.annotate() або QuerySet.alias(). Зловмисник міг використати псевдоніми стовпців для впровадження шкідливого SQL-коду, що створює ризик несанкціонованого доступу до даних або їх модифікації.
Рекомендації:
- Перевірте кодову базу на предмет використання
FilteredRelationз динамічними ключами в**kwargs. - Оновіть Django до версії, що містить виправлення цієї вразливості.
- Проведіть аудит методів
annotate()таalias(), щоб переконатися, що вхідні дані для псевдонімів стовпців належним чином валідуються та не походять безпосередньо від користувача.
Захист від SQL-ін'єкцій у FilteredRelation
Вразливість у Django, що дозволяє SQL-ін'єкції через `FilteredRelation`, створює пряму загрозу витоку або модифікації даних у ваших веб-додатках. Розробникам необхідно переглянути код, де використовуються методи анотації, щоб уникнути несанкціонованого доступу до бази даних через маніпуляції з псевдонімами стовпців.
Практичний крок: Оновіть Django до безпечної версії та проведіть ретельний аудит кодової бази на предмет використання `FilteredRelation`. Замовте у Softline професійний аудит безпеки веб-додатків, щоб виявити потенційні вразливості в логіці запитів до бази даних та забезпечити надійну валідацію вхідних даних.
Використані джерела
- djangoproject.com (djangoproject.com)