CRITICAL✓ PATCH🇬🇧 English

CVE-2022-34265

SQL injection w funkcjach Trunc() i Extract() frameworka Django

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

W Django 3.2 przed wersją 3.2.14 oraz 4.0 przed wersją 4.0.6 funkcje bazodanowe Trunc() i Extract() są podatne na SQL injection, jeśli do parametrów kind/lookup_name trafiają niezaufane dane. Podatność otrzymała ocenę CVSS 9.8 (CRITICAL), co odzwierciedla możliwość jej zdalnego wykorzystania bez uwierzytelnienia.

Pokaż oryginał (EN)

An issue was discovered in Django 3.2 before 3.2.14 and 4.0 before 4.0.6. The Trunc() and Extract() database functions are subject to SQL injection if untrusted data is used as a kind/lookup_name value. Applications that constrain the lookup name and kind choice to a known safe list are unaffected.

🤖 Analiza AI
Jak działa

Funkcje Trunc() i Extract() w warstwie ORM Django nie sanityzują odpowiednio wartości przekazywanych jako parametry kind oraz lookup_name. Jeśli aplikacja pozwala na przekazanie tych wartości bezpośrednio od użytkownika bez weryfikacji względem dozwolonej listy, atakujący może wstrzyknąć złośliwy kod SQL, który zostanie wykonany przez silnik bazodanowy. Aplikacje, które samodzielnie ograniczają dopuszczalne wartości kind/lookup_name do z góry zdefiniowanej, bezpiecznej listy, nie są podatne.

Skutki

Atakujący może odczytać, zmodyfikować lub usunąć dane w bazie danych, a w zależności od konfiguracji serwera bazodanowego — potencjalnie uzyskać pełną kontrolę nad systemem (naruszenie poufności, integralności i dostępności).

Mitygacja

Należy zaktualizować Django do wersji 3.2.14 lub nowszej (dla gałęzi 3.2) albo do wersji 4.0.6 lub nowszej (dla gałęzi 4.0). Jako środek zaradczy w kodzie aplikacji należy ograniczyć wartości przekazywane do parametrów kind i lookup_name funkcji Trunc() i Extract() wyłącznie do z góry zdefiniowanej, bezpiecznej listy dopuszczalnych wartości.

Kogo dotyczy

Django w wersjach 3.2.x przed 3.2.14 oraz 4.0.x przed 4.0.6

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

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

Powiązane podatności

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

Django: brak walidacji uprawnień dodawania w GenericInlineModelAdmin

CVE-2025-64459CRITICAL9.1PL ✓ten sam produkt

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

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

SQL Injection w Django przez HasKey lookup na bazie Oracle

CVE-2023-31047CRITICAL9.8PL ✓ten sam produkt

Pominięcie walidacji przy wielokrotnym przesyłaniu plików w Django

CVE-2022-28346CRITICAL9.8PL ✓ten sam produkt

SQL injection w metodach QuerySet Django przez aliasy kolumn