<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="/static/style.xsl" type="text/xsl"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
  <id>https://vulnerability.circl.lu/rss/recent/all/10</id>
  <title>Most recent entries from all</title>
  <updated>2026-09-30T23:32:56.970507+00:00</updated>
  <author>
    <name>Vulnerability-Lookup</name>
    <email>info@circl.lu</email>
  </author>
  <link href="https://vulnerability.circl.lu" rel="alternate"/>
  <generator uri="https://lkiesow.github.io/python-feedgen" version="1.0.0">python-feedgen</generator>
  <subtitle>Contains only the most 10 recent entries.</subtitle>
  <entry>
    <id>https://vulnerability.circl.lu/vuln/cve-2026-73229</id>
    <title>CVE-2026-73229 — Django REST framework: AdminRenderer may disclose GET-protected data when rendering invalid write requests</title>
    <updated>2026-09-30T23:32:56.973031+00:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml"><p><strong>Affected:</strong> encode django-rest-framework</p>
<p>Django REST framework is a powerful and flexible toolkit for building Web APIs. Prior to 3.17.2, Django REST Framework's rest_framework/renderers.py AdminRenderer.render() uses override_method() to simulate GET and directly invokes view.get() without view.check_permissions() while rendering an invalid write request, allowing a 400 Bad Request HTML response to disclose data from a GET representation that the requester is not permitted to access. This issue is fixed in version 3.17.2.</p></div>
    </content>
    <link href="https://vulnerability.circl.lu/vuln/cve-2026-73229"/>
  </entry>
  <entry>
    <id>https://vulnerability.circl.lu/vuln/pysec-2026-3828</id>
    <title>PYSEC-2026-3828 — Django REST framework: AdminRenderer may disclose GET-protected data when rendering invalid write requests</title>
    <updated>2026-09-30T23:32:56.973126+00:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml"><p><strong>Affected:</strong> PyPI: djangorestframework</p>
<p>Summary</p>
<p>AdminRenderer may disclose data that would normally be protected by GET permissions when rendering a 400 Bad Request response for an invalid write request.</p>
<p>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.</p>
<p>This behavior appears to be specific to AdminRenderer and does not affect the normal JSON rendering path.</p>
<p>---</p>
<p>Details</p>
<p>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:</p>
<p>```
with override_method(view, request, "GET") as request:
    response = view.get(request, *view.args, **view.kwargs)</p>
<p>data = response.data
```</p>
<p>This execution path differs from a normal GET request.</p>
<p>Under normal request processing, a GET request flows through:</p>
<p>```
APIView.dispatch()
    └── APIView.initial()
            └── APIView.check_permissions()
```</p>
<p>However, during AdminRenderer rendering, the renderer directly invokes:</p>
<p>view.get(...)</p>
<p>A view whose permission class explicitly allowed POST but denied GET still executed its GET handler while rendering an invalid POST request through AdminRenderer.</p>
<p>As a result, data intended to be available only through an authorized GET request was included in the generated HTML response.</p>
<p>---</p>
<p>Proof of Concept</p>
<p>Using a standard ListCreateAP…</p></div>
    </content>
    <link href="https://vulnerability.circl.lu/vuln/pysec-2026-3828"/>
  </entry>
</feed>
