CRITICAL✓ PATCH🇬🇧 English

CVE-2022-28346

SQL injection w metodach QuerySet Django przez aliasy kolumn

CVSS 9.8v3.1pub. 2022-04-12upd. 2024-11-21

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.

🤖 Analiza AI
Jak działa

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.

Skutki

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ść).

Mitygacja

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.

Kogo dotyczy

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 Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
  • Debian

    OS
    Debian
    11.09.0
  • Djangoproject Django

    APP
    Djangoproject
    2.2 – 2.2.28 (bez)3.2 – 3.2.13 (bez)4.0 – 4.0.4 (bez)
🟢
PATCH DOSTĘPNY
Aktualizacja od producenta gotowa. Wdrożenie w ramach standardowego cyklu.
Tagi
SQLi
CWE
Referencje

Powiązane podatności

CVE-2026-24061CRITICAL9.8⚠ KEVPL ✓ten sam produkt

GNU Inetutils telnetd: ominięcie uwierzytelnienia przez zmienną USER

CVE-2025-32463CRITICAL9.3⚠ KEVPL ✓ten sam produkt

Sudo: eskalacja uprawnień do root poprzez opcję --chroot (CVE-2025-32463)

CVE-2025-49113CRITICAL9.9⚠ KEVPL ✓ten sam produkt

RCE przez deserializację PHP w Roundcube Webmail (parametr _from)

CVE-2025-32433CRITICAL10.0⚠ KEVPL ✓ten sam produkt

Erlang/OTP SSH — nieuwierzytelniony RCE (CVSS 10.0)

CVE-2025-24201CRITICAL10.0⚠ KEVPL ✓ten sam produkt

Apple WebKit: out-of-bounds write umożliwiający ucieczkę z sandbox przeglądarki