CRITICAL🇬🇧 English

CVE-2025-64459

SQL injection w Django via argument _connector w QuerySet i Q()

CVSS 9.1v3.1pub. 2025-11-05upd. 2025-11-10

Krytyczna podatność SQL injection (CWE-89) w frameworku Django pozwala nieuwierzytelnionemu atakującemu na manipulację zapytaniami SQL poprzez spreparowany słownik z rozwinięciem i argumentem _connector. Umożliwia to nieautoryzowany odczyt oraz modyfikację danych w bazie danych aplikacji.

Pokaż oryginał (EN)

An issue was discovered in 5.1 before 5.1.14, 4.2 before 4.2.26, and 5.2 before 5.2.8. The methods `QuerySet.filter()`, `QuerySet.exclude()`, and `QuerySet.get()`, and the class `Q()`, are subject to SQL injection when using a suitably crafted dictionary, with dictionary expansion, as the `_connector` argument. Earlier, unsupported Django series (such as 5.0.x, 4.1.x, and 3.2.x) were not evaluated and may also be affected. Django would like to thank cyberstan for reporting this issue.

🤖 Analiza AI
Jak działa

Podatność dotyczy metod QuerySet.filter(), QuerySet.exclude() oraz QuerySet.get(), a także klasy Q(). Atakujący może przekazać specjalnie spreparowany słownik z rozwinięciem (dictionary expansion) jako argument _connector do jednej z wymienionych metod. Django nie waliduje prawidłowo tej wartości, co pozwala na wstrzyknięcie arbitralnego kodu SQL do generowanego zapytania. Atak nie wymaga uwierzytelnienia ani interakcji użytkownika, a wektor jest sieciowy.

Skutki

Atakujący może uzyskać nieautoryzowany dostęp do poufnych danych przechowywanych w bazie danych (wysoki wpływ na poufność) oraz modyfikować lub usuwać dane (wysoki wpływ na integralność). Podatność nie wpływa bezpośrednio na dostępność systemu.

Mitygacja

Należy niezwłocznie zaktualizować Django do wersji 5.1.14, 4.2.26 lub 5.2.8 (odpowiednio do używanej gałęzi). Szczegóły dostępne w oficjalnym wpisie bezpieczeństwa: https://www.djangoproject.com/weblog/2025/nov/05/security-releases/. Użytkownicy niewspieranych gałęzi (np. 3.2.x, 4.1.x, 5.0.x) powinni pilnie przeprowadzić migrację do wspieranej wersji.

Kogo dotyczy

Django w wersjach: 5.1 przed 5.1.14, 4.2 przed 4.2.26 oraz 5.2 przed 5.2.8. Starsze, niewspierane gałęzie (5.0.x, 4.1.x, 3.2.x) nie były analizowane i mogą być również podatne.

Uwagi

Podatność odkryta i zgłoszona przez badacza o pseudonimie 'cyberstan' — informacja pochodzi z oryginalnego opisu CVE. Dostępna jest publiczna analiza technyczna podatności pod adresem https://shivasurya.me/security/django/2025/11/07/django-sql-injection-CVE-2025-64459.html.

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
  • Djangoproject Django

    APP
    Djangoproject
    4.2 – 4.2.26 (bez)5.1 – 5.1.14 (bez)5.2 – 5.2.8 (bez)
🔵
ZWERYFIKUJ U PRODUCENTA
Brak jednoznacznych danych o patchu. Sprawdź referencje od producenta.
Tagi
SQLi
CWE
Referencje

Powiązane podatności

CVE-2026-4277CRITICAL9.8PL ✓ten sam produkt

Django: brak walidacji uprawnień dodawania w GenericInlineModelAdmin

CVE-2024-53908CRITICAL9.8PL ✓ten sam produkt

SQL Injection w Django przez HasKey lookup na bazie Oracle

CVE-2023-31047CRITICAL9.8ten sam produkt

In Django 3.2 before 3.2.19, 4.x before 4.1.9, and 4.2 before 4.2.1, it was possible to bypass validation when...

CVE-2022-34265CRITICAL9.8ten sam produkt

An issue was discovered in Django 3.2 before 3.2.14 and 4.0 before 4.0.6. The Trunc() and Extract() database f...

CVE-2022-28346CRITICAL9.8ten sam produkt

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.annotat...