{"title":"Django 3.2.13 release notes","version":"dev","locale":"en","docname":"releases/3.2.13","url":"/en/dev/releases/3.2.13/","canonical":"https://djangodocs.dev/en/dev/releases/3.2.13/","summary":"Django 3.2.13 fixes two security issues with severity “high” in 3.2.12 and a regression in 3.2.4.","html":"<h1>Django 3.2.13 release notes<a class=\"heading-anchor\" href=\"#django-3-2-13-release-notes\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h1>\n<p><em>April 11, 2022</em></p>\n<p>Django 3.2.13 fixes two security issues with severity “high” in\n3.2.12 and a regression in 3.2.4.</p>\n<section id=\"cve-2022-28346-potential-sql-injection-in-queryset-annotate-aggregate-and-extra\">\n<h2>CVE-2022-28346: Potential SQL injection in <code class=\"docutils literal notranslate\">QuerySet.annotate()</code>, <code class=\"docutils literal notranslate\">aggregate()</code>, and <code class=\"docutils literal notranslate\">extra()</code><a class=\"heading-anchor\" href=\"#cve-2022-28346-potential-sql-injection-in-queryset-annotate-aggregate-and-extra\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p><a class=\"reference internal\" href=\"/en/dev/ref/models/querysets/#django.db.models.query.QuerySet.annotate\" title=\"django.db.models.query.QuerySet.annotate\"><code class=\"xref py py-meth docutils literal notranslate\">QuerySet.annotate()</code></a>, <a class=\"reference internal\" href=\"/en/dev/ref/models/querysets/#django.db.models.query.QuerySet.aggregate\" title=\"django.db.models.query.QuerySet.aggregate\"><code class=\"xref py py-meth docutils literal notranslate\">aggregate()</code></a>, and\n<a class=\"reference internal\" href=\"/en/dev/ref/models/querysets/#django.db.models.query.QuerySet.extra\" title=\"django.db.models.query.QuerySet.extra\"><code class=\"xref py py-meth docutils literal notranslate\">extra()</code></a> methods were subject to SQL injection in column\naliases, using a suitably crafted dictionary, with dictionary expansion, as the\n<code class=\"docutils literal notranslate\">**kwargs</code> passed to these methods.</p>\n</section>\n<section id=\"cve-2022-28347-potential-sql-injection-via-queryset-explain-options-on-postgresql\">\n<h2>CVE-2022-28347: Potential SQL injection via <code class=\"docutils literal notranslate\">QuerySet.explain(**options)</code> on PostgreSQL<a class=\"heading-anchor\" href=\"#cve-2022-28347-potential-sql-injection-via-queryset-explain-options-on-postgresql\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p><a class=\"reference internal\" href=\"/en/dev/ref/models/querysets/#django.db.models.query.QuerySet.explain\" title=\"django.db.models.query.QuerySet.explain\"><code class=\"xref py py-meth docutils literal notranslate\">QuerySet.explain()</code></a> method was subject to SQL injection in option names,\nusing a suitably crafted dictionary, with dictionary expansion, as the\n<code class=\"docutils literal notranslate\">**options</code> argument.</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 regression in Django 3.2.4 that caused the auto-reloader to no longer\ndetect changes when the <code class=\"docutils literal notranslate\">DIRS</code> option of the <code class=\"docutils literal notranslate\">TEMPLATES</code> setting\ncontained an empty string (<a class=\"extlink-ticket reference external\" href=\"https://code.djangoproject.com/ticket/33628\">#33628</a>).</p></li>\n</ul>\n</section>","rootId":"django-3-2-13-release-notes","toc":[{"title":"CVE-2022-28346: Potential SQL injection in QuerySet.annotate(), aggregate(), and extra()","anchor":"cve-2022-28346-potential-sql-injection-in-queryset-annotate-aggregate-and-extra","children":[]},{"title":"CVE-2022-28347: Potential SQL injection via QuerySet.explain(**options) on PostgreSQL","anchor":"cve-2022-28347-potential-sql-injection-via-queryset-explain-options-on-postgresql","children":[]},{"title":"Bugfixes","anchor":"bugfixes","children":[]}],"breadcrumbs":[{"docname":"releases/index","title":"Release notes","url":"/en/dev/releases/"}],"prev":{"docname":"releases/3.2.14","title":"Django 3.2.14 release notes","url":"/en/dev/releases/3.2.14/"},"next":{"docname":"releases/3.2.12","title":"Django 3.2.12 release notes","url":"/en/dev/releases/3.2.12/"},"formats":{"html":"/en/dev/releases/3.2.13/","markdown":"/en/dev/releases/3.2.13.md","json":"/en/dev/releases/3.2.13.json"},"source":"https://github.com/django/django/blob/main/docs/releases/3.2.13.txt","official":"https://docs.djangoproject.com/en/dev/releases/3.2.13/","inVersions":["dev","6.1","6.0","5.2","5.1","5.0","4.2","4.1","4.0","3.2"],"inLocales":["en"]}