{"title":"Django 3.0.4 release notes","version":"dev","locale":"en","docname":"releases/3.0.4","url":"/en/dev/releases/3.0.4/","canonical":"https://djangodocs.dev/en/dev/releases/3.0.4/","summary":"Django 3.0.4 fixes a security issue and several bugs in 3.0.3. GIS functions and aggregates on Oracle were subject to SQL injection, using a suitably…","html":"<h1>Django 3.0.4 release notes<a class=\"heading-anchor\" href=\"#django-3-0-4-release-notes\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h1>\n<p><em>March 4, 2020</em></p>\n<p>Django 3.0.4 fixes a security issue and several bugs in 3.0.3.</p>\n<section id=\"cve-2020-9402-potential-sql-injection-via-tolerance-parameter-in-gis-functions-and-aggregates-on-oracle\">\n<h2>CVE-2020-9402: Potential SQL injection via <code class=\"docutils literal notranslate\">tolerance</code> parameter in GIS functions and aggregates on Oracle<a class=\"heading-anchor\" href=\"#cve-2020-9402-potential-sql-injection-via-tolerance-parameter-in-gis-functions-and-aggregates-on-oracle\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>GIS functions and aggregates on Oracle were subject to SQL injection,\nusing a suitably crafted <code class=\"docutils literal notranslate\">tolerance</code>.</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 data loss possibility when using caching from async code\n(<a class=\"extlink-ticket reference external\" href=\"https://code.djangoproject.com/ticket/31253\">#31253</a>).</p></li>\n<li><p>Fixed a regression in Django 3.0 that caused a file response using a\ntemporary file to be closed incorrectly (<a class=\"extlink-ticket reference external\" href=\"https://code.djangoproject.com/ticket/31240\">#31240</a>).</p></li>\n<li><p>Fixed a data loss possibility in the\n<a class=\"reference internal\" href=\"/en/dev/ref/models/querysets/#django.db.models.query.QuerySet.select_for_update\" title=\"django.db.models.query.QuerySet.select_for_update\"><code class=\"xref py py-meth docutils literal notranslate\">select_for_update()</code></a>. When using\nrelated fields or parent link fields with <a class=\"reference internal\" href=\"/en/dev/topics/db/models/#multi-table-inheritance\"><span class=\"std std-ref\">Multi-table inheritance</span></a> in\nthe <code class=\"docutils literal notranslate\">of</code> argument, the corresponding models were not locked\n(<a class=\"extlink-ticket reference external\" href=\"https://code.djangoproject.com/ticket/31246\">#31246</a>).</p></li>\n<li><p>Fixed a regression in Django 3.0 that caused misplacing parameters in logged\nSQL queries on Oracle (<a class=\"extlink-ticket reference external\" href=\"https://code.djangoproject.com/ticket/31271\">#31271</a>).</p></li>\n<li><p>Fixed a regression in Django 3.0.3 that caused misplacing parameters of SQL\nqueries when subtracting <code class=\"docutils literal notranslate\">DateField</code> or <code class=\"docutils literal notranslate\">DateTimeField</code> expressions on\nMySQL (<a class=\"extlink-ticket reference external\" href=\"https://code.djangoproject.com/ticket/31312\">#31312</a>).</p></li>\n<li><p>Fixed a regression in Django 3.0 that didn’t include subqueries spanning\nmultivalued relations in the <code class=\"docutils literal notranslate\">GROUP BY</code> clause (<a class=\"extlink-ticket reference external\" href=\"https://code.djangoproject.com/ticket/31150\">#31150</a>).</p></li>\n</ul>\n</section>","rootId":"django-3-0-4-release-notes","toc":[{"title":"CVE-2020-9402: Potential SQL injection via tolerance parameter in GIS functions and aggregates on Oracle","anchor":"cve-2020-9402-potential-sql-injection-via-tolerance-parameter-in-gis-functions-and-aggregates-on-oracle","children":[]},{"title":"Bugfixes","anchor":"bugfixes","children":[]}],"breadcrumbs":[{"docname":"releases/index","title":"Release notes","url":"/en/dev/releases/"}],"prev":{"docname":"releases/3.0.5","title":"Django 3.0.5 release notes","url":"/en/dev/releases/3.0.5/"},"next":{"docname":"releases/3.0.3","title":"Django 3.0.3 release notes","url":"/en/dev/releases/3.0.3/"},"formats":{"html":"/en/dev/releases/3.0.4/","markdown":"/en/dev/releases/3.0.4.md","json":"/en/dev/releases/3.0.4.json"},"source":"https://github.com/django/django/blob/main/docs/releases/3.0.4.txt","official":"https://docs.djangoproject.com/en/dev/releases/3.0.4/","inVersions":["dev","6.1","6.0","5.2","5.1","5.0","4.2","4.1","4.0","3.2","3.1","3.0"],"inLocales":["en"]}