W Django wykryto krytyczną podatność typu SQL injection w metodach QuerySet.annotate(), aggregate() oraz extra(), umożliwiającą atakującemu wykonanie nieautoryzowanych zapytań SQL. Podatność jest szczególnie niebezpieczna, ponieważ nie wymaga uwierzytelnienia ani interakcji użytkownika.
▸ Pokaż oryginał (EN)
An issue was discovered in Django 2.2 before 2.2.28, 3.2 before 3.2.13, and 4.0 before 4.0.4. QuerySet.annotate(), aggregate(), and extra() methods are subject to SQL injection in column aliases via a crafted dictionary (with dictionary expansion) as the passed **kwargs.
Podatność wynika z braku odpowiedniej sanityzacji aliasów kolumn przekazywanych jako argumenty słownikowe (kwargs) z rozwinięciem słownika (**kwargs) do metod QuerySet.annotate(), aggregate() oraz extra(). Atakujący może spreparować specjalnie skonstruowany słownik, którego klucze zawierają złośliwy kod SQL, który zostaje osadzony bezpośrednio w zapytaniu do bazy danych. W ten sposób możliwe jest wstrzyknięcie dowolnych instrukcji SQL poprzez nazwy aliasów kolumn, omijając mechanizmy ochrony ORM Django.
Atakujący może uzyskać nieautoryzowany dostęp do danych w bazie danych, modyfikować lub usuwać dane, a w określonych konfiguracjach bazy danych potencjalnie przejąć kontrolę nad systemem (pełna triada CIA: poufność, integralność, dostępność).
Należy zaktualizować Django do wersji 2.2.28, 3.2.13 lub 4.0.4 (lub nowszych). Użytkownicy dystrybucji Debian powinni zastosować aktualizacje pakietów dostępne w ramach debian-lts-announce. Użytkownicy dystrybucji Fedora powinni zainstalować poprawione pakiety dostępne przez repozytorium Fedora.
Django w wersjach: 2.2 przed 2.2.28, 3.2 przed 3.2.13, 4.0 przed 4.0.4. Dotyczy również pakietów Django w dystrybucji Debian Linux.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HDebian
OSDebian11.09.0Djangoproject Django
APPDjangoproject2.2 – 2.2.28 (bez)3.2 – 3.2.13 (bez)4.0 – 4.0.4 (bez)
Powiązane podatności
GNU Inetutils telnetd: ominięcie uwierzytelnienia przez zmienną USER
Sudo: eskalacja uprawnień do root poprzez opcję --chroot (CVE-2025-32463)
RCE przez deserializację PHP w Roundcube Webmail (parametr _from)
Erlang/OTP SSH — nieuwierzytelniony RCE (CVSS 10.0)
Apple WebKit: out-of-bounds write umożliwiający ucieczkę z sandbox przeglądarki