{"title":"Django 6.0.5 release notes","version":"dev","locale":"en","docname":"releases/6.0.5","url":"/en/dev/releases/6.0.5/","canonical":"https://djangodocs.dev/en/dev/releases/6.0.5/","summary":"Django 6.0.5 fixes three security issues with severity “low” and several bugs in 6.0.4.","html":"<h1>Django 6.0.5 release notes<a class=\"heading-anchor\" href=\"#django-6-0-5-release-notes\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h1>\n<p><em>May 5, 2026</em></p>\n<p>Django 6.0.5 fixes three security issues with severity “low” and several bugs\nin 6.0.4.</p>\n<section id=\"cve-2026-5766-potential-denial-of-service-vulnerability-in-asgi-requests-via-file-upload-limit-bypass\">\n<h2>CVE-2026-5766: Potential denial-of-service vulnerability in ASGI requests via file upload limit bypass<a class=\"heading-anchor\" href=\"#cve-2026-5766-potential-denial-of-service-vulnerability-in-asgi-requests-via-file-upload-limit-bypass\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>ASGI requests with a missing or understated <code class=\"docutils literal notranslate\">Content-Length</code> header could\nbypass the <a class=\"reference internal\" href=\"/en/dev/ref/settings/#std-setting-FILE_UPLOAD_MAX_MEMORY_SIZE\"><code class=\"xref std std-setting docutils literal notranslate\">FILE_UPLOAD_MAX_MEMORY_SIZE</code></a> limit, potentially loading\nlarge files into memory and causing service degradation.</p>\n<p>As a reminder, Django <a class=\"reference internal\" href=\"/en/dev/topics/security/#user-uploaded-content-security\"><span class=\"std std-ref\">expects a limit to be configured</span></a> at the web server level rather than solely\nrelying on <a class=\"reference internal\" href=\"/en/dev/ref/settings/#std-setting-FILE_UPLOAD_MAX_MEMORY_SIZE\"><code class=\"xref std std-setting docutils literal notranslate\">FILE_UPLOAD_MAX_MEMORY_SIZE</code></a>.</p>\n<p>This issue has severity “low” according to the <a class=\"reference internal\" href=\"/en/dev/internals/security/#severity-levels\"><span class=\"std std-ref\">Django security policy</span></a>.</p>\n</section>\n<section id=\"cve-2026-35192-session-fixation-via-public-cached-pages-and-session-save-every-request\">\n<h2>CVE-2026-35192: Session fixation via public cached pages and <code class=\"docutils literal notranslate\">SESSION_SAVE_EVERY_REQUEST</code><a class=\"heading-anchor\" href=\"#cve-2026-35192-session-fixation-via-public-cached-pages-and-session-save-every-request\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Response headers did not <a class=\"reference internal\" href=\"/en/dev/topics/cache/#using-vary-headers\"><span class=\"std std-ref\">vary on</span></a> cookies if a\nsession was not modified, but <a class=\"reference internal\" href=\"/en/dev/ref/settings/#std-setting-SESSION_SAVE_EVERY_REQUEST\"><code class=\"xref std std-setting docutils literal notranslate\">SESSION_SAVE_EVERY_REQUEST</code></a> was\n<code class=\"docutils literal notranslate\">True</code>. A remote attacker could steal a user’s session after that user visits\na cached public page.</p>\n<p>This issue has severity “low” according to the <a class=\"reference internal\" href=\"/en/dev/internals/security/#severity-levels\"><span class=\"std std-ref\">Django security policy</span></a>.</p>\n</section>\n<section id=\"cve-2026-6907-potential-exposure-of-private-data-due-to-incorrect-handling-of-vary-in-updatecachemiddleware\">\n<h2>CVE-2026-6907: Potential exposure of private data due to incorrect handling of <code class=\"docutils literal notranslate\">Vary: *</code> in <code class=\"docutils literal notranslate\">UpdateCacheMiddleware</code><a class=\"heading-anchor\" href=\"#cve-2026-6907-potential-exposure-of-private-data-due-to-incorrect-handling-of-vary-in-updatecachemiddleware\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Previously, <a class=\"reference internal\" href=\"/en/dev/ref/middleware/#django.middleware.cache.UpdateCacheMiddleware\" title=\"django.middleware.cache.UpdateCacheMiddleware\"><code class=\"xref py py-class docutils literal notranslate\">UpdateCacheMiddleware</code></a> would\nerroneously cache requests where the <code class=\"docutils literal notranslate\">Vary</code> header contained an asterisk\n(<code class=\"docutils literal notranslate\">'*'</code>). This could lead to private data being stored and served.</p>\n<p>This issue has severity “low” according to the <a class=\"reference internal\" href=\"/en/dev/internals/security/#severity-levels\"><span class=\"std std-ref\">Django security policy</span></a>.</p>\n</section>\n<section id=\"bugfixes\">\n<h2>Bugfixes<a class=\"heading-anchor\" href=\"#bugfixes\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<ul class=\"simple\">\n<li><p>Fixed a misplaced <code class=\"docutils literal notranslate\">&lt;/div&gt;</code> in the\n<code class=\"docutils literal notranslate\">django/contrib/admin/templates/admin/change_list.html</code> template added in\nDjango 6.0 that could be problematic when overriding the <code class=\"docutils literal notranslate\">pagination</code> block\n(<a class=\"extlink-ticket reference external\" href=\"https://code.djangoproject.com/ticket/37029\">#37029</a>).</p></li>\n<li><p>Fixed a bug in Django 6.0 where deprecation warnings incorrectly skipped\nlines from third-party packages prefixed with “django” (<a class=\"extlink-ticket reference external\" href=\"https://code.djangoproject.com/ticket/37067\">#37067</a>).</p></li>\n</ul>\n</section>","rootId":"django-6-0-5-release-notes","toc":[{"title":"CVE-2026-5766: Potential denial-of-service vulnerability in ASGI requests via file upload limit bypass","anchor":"cve-2026-5766-potential-denial-of-service-vulnerability-in-asgi-requests-via-file-upload-limit-bypass","children":[]},{"title":"CVE-2026-35192: Session fixation via public cached pages and SESSION_SAVE_EVERY_REQUEST","anchor":"cve-2026-35192-session-fixation-via-public-cached-pages-and-session-save-every-request","children":[]},{"title":"CVE-2026-6907: Potential exposure of private data due to incorrect handling of Vary: * in UpdateCacheMiddleware","anchor":"cve-2026-6907-potential-exposure-of-private-data-due-to-incorrect-handling-of-vary-in-updatecachemiddleware","children":[]},{"title":"Bugfixes","anchor":"bugfixes","children":[]}],"breadcrumbs":[{"docname":"releases/index","title":"Release notes","url":"/en/dev/releases/"}],"prev":{"docname":"releases/6.0.6","title":"Django 6.0.6 release notes","url":"/en/dev/releases/6.0.6/"},"next":{"docname":"releases/6.0.4","title":"Django 6.0.4 release notes","url":"/en/dev/releases/6.0.4/"},"formats":{"html":"/en/dev/releases/6.0.5/","markdown":"/en/dev/releases/6.0.5.md","json":"/en/dev/releases/6.0.5.json"},"source":"https://github.com/django/django/blob/main/docs/releases/6.0.5.txt","official":"https://docs.djangoproject.com/en/dev/releases/6.0.5/","inVersions":["dev","6.1","6.0"],"inLocales":["en"]}