mediumCVSS 4.3Vulnerability

CVE-2026-73229

Summary AdminRenderer may disclose data that would normally be protected by GET permissions when rendering a 400 Bad Request response for an invalid write request. If a view allows POST (or another write method) but denies GET, an invalid request rendered through AdminRenderer can invoke the view's GET handler and include data from the GET representation in the generated HTML response. This behavior appears to be specific to AdminRenderer and does not affect the normal JSON rendering path. --- Details While investigating the AdminRenderer rendering flow, I observed that invalid write requests are rendered by temporarily overriding the request method and invoking the view's GET handler: ``` with override_method(view, request, "GET") as request: response = view.get(request, *view.args, **view.kwargs) data = response.data ``` This execution path differs from a normal GET request. Under normal request processing, a GET request flows through: ``` APIView.dispatch() └── APIView.initial() └── APIView.check_permissions() ``` However, during AdminRenderer rendering, the renderer directly invokes: view.get(...) A view whose permission class explicitly allowed POST but denied GET still executed its GET handler while rendering an invalid POST request through AdminRenderer. As a result, data intended to be available only through an authorized GET request was included in the generated HTML response. --- Proof of Concept Using a standard ListCreateAPIView. Permission class: ``` class ProbePermission(BasePermission): def has_permission(self, request, view): return request.method == "POST" View: class View(ListCreateAPIView): renderer_classes = (AdminRenderer, JSONRenderer) permission_classes = (ProbePermission,) serializer_class = ProbeSerializer def get_queryset(self): return [ { "name": "visible", "secret": "GET-ONLY-SECRET", } ] ``` Ex

Properties

ghsa_id
GHSA-g47c-3xmw-q6m2
severity
medium
summary
Django REST framework: AdminRenderer may disclose GET-protected data when rendering invalid write requests
cvss_score
4.3
cve_id
CVE-2026-73229
cvss_vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N
is_ghsa_only
false
ghsa_published
2026-09-01T19:24:29Z
source_url
https://github.com/advisories/GHSA-g47c-3xmw-q6m2
ghsa_updated
2026-09-01T19:24:31Z

Related Entities (4)

REPORTED_BY (1)

[Source]GitHub Advisory Database

VULNERABLE_TO (1)

[Software]pip/djangorestframework

AFFECTS (1)

[Software]pip/djangorestframework

HAS_WEAKNESS (1)

[Weakness]Exposure of Sensitive Information to an Unauthorized Actor

Explore deeper with Ninja Signal's threat intelligence graph

CVE-2026-73229 (CVSS 4.3) — Ninja Signal Threat Intelligence | Ninja Signal