W Django odkryto podatność polegającą na braku weryfikacji uprawnień do dodawania obiektów w mechanizmie GenericInlineModelAdmin przy obsłudze spreparowanych danych POST. Umożliwia to nieuwierzytelnionemu atakującemu ominięcie kontroli dostępu i zapis danych bez odpowiednich uprawnień.
▸ Pokaż oryginał (EN)
An issue was discovered in 6.0 before 6.0.4, 5.2 before 5.2.13, and 4.2 before 4.2.30. Add permissions on inline model instances were not validated on submission of forged `POST` data in `GenericInlineModelAdmin`. 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 N05ec@LZU-DSLab for reporting this issue.
Podatność (CWE-862 — Missing Authorization) dotyczy komponentu GenericInlineModelAdmin w panelu administracyjnym Django. Podczas przesyłania formularza zawierającego spreparowane dane POST uprawnienia do dodawania obiektów dla powiązanych modeli inline nie były weryfikowane po stronie serwera. Atakujący może skonstruować odpowiednie żądanie POST i przesłać je bezpośrednio, omijając standardową ścieżkę interfejsu, co skutkuje nieautoryzowanym dodaniem rekordów do bazy danych.
Atakujący bez wymaganych uprawnień może nieautoryzowanie tworzyć lub modyfikować obiekty modeli inline w panelu administracyjnym Django, co prowadzi do naruszenia integralności i poufności danych oraz kompromitacji logiki biznesowej aplikacji.
Należy zaktualizować Django do wersji 6.0.4, 5.2.13 lub 4.2.30 (w zależności od stosowanej gałęzi). Dla nieobsługiwanych wersji (5.0.x, 4.1.x, 3.2.x) zaleca się pilną migrację do obsługiwanej gałęzi i zastosowanie odpowiedniego patcha.
Django w wersjach: 6.0 przed 6.0.4, 5.2 przed 5.2.13 oraz 4.2 przed 4.2.30. Starsze, nieobsługiwane gałęzie (5.0.x, 4.1.x, 3.2.x) nie były oceniane i mogą być również podatne.
Podatność została zgłoszona przez N05ec@LZU-DSLab. Starsze gałęzie Django (5.0.x, 4.1.x, 3.2.x) nie zostały formalnie ocenione przez producenta, lecz mogą być podatne — organizacje korzystające z tych wersji powinny potraktować kwestię priorytetowo.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HDjangoproject Django
APPDjangoproject4.2 – 4.2.30 (bez)5.2 – 5.2.13 (bez)6.0 – 6.0.4 (bez)
Powiązane podatności
SQL injection w Django via argument _connector w QuerySet i Q()
SQL Injection w Django przez HasKey lookup na bazie Oracle
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...
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...
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...