# CVE-2025-13372: Django SQL injection in FilteredRelation column aliases on PostgreSQL

Source: https://junglewise.ai/threats/cve-2025-13372-django-sql-injection-in-filteredrelation-column-aliases-on  
Publisher: Junglewise Threat Intelligence, https://junglewise.ai/threats  
Published: 2025-12-02. Updated: 2026-06-05  
License: CC BY 4.0 with a link back

CVE-2025-13372 · Severity: medium · CVSS 4.3 · Published 2025-12-02

Django, a popular web framework for building Python applications, is vulnerable to a security flaw when used with PostgreSQL databases. An attacker could potentially execute unauthorized database commands by providing specially crafted data to certain database query functions. This could lead to unauthorized access to sensitive information stored in the database.

Technologies: [Djangoproject Django](https://junglewise.ai/threats/technologies/djangoproject-django), [Django (PyPI)](https://junglewise.ai/threats/technologies/django). Vendors: [Djangoproject](https://junglewise.ai/threats/vendors/djangoproject), [PyPI](https://junglewise.ai/threats/vendors/pypi).

## Quick answers

**Is CVE-2025-13372 exploited in the wild?** No. Junglewise Threat Intelligence has no report of CVE-2025-13372 being exploited in the wild.

**How severe is CVE-2025-13372?** Medium severity, with a CVSS score of 4.3, published 2 December 2025.

**Which products and versions are affected?** Django (PyPI) ECOSYSTEM:introduced=4.2,fixed=4.2.27,introduced=5.1,fixed=5.1.15,introduced=5.2,fixed=5.2.9, ECOSYSTEM:introduced=5.2a1,fixed=5.2.9.

**Is there a fix for CVE-2025-13372?** Yes. Django (PyPI): upgrade to 5.2.9 or later. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.

**How is CVE-2025-13372 attacked?** It is attacked over the network, in a software library.

**Am I affected by CVE-2025-13372?** Check whether you run Djangoproject Django or Django (PyPI) at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

## How to fix

- Django (PyPI): upgrade to 5.2.9 or later

  ```sh
  pip install "Django>=5.2.9"
  ```


## Technical details

A SQL injection vulnerability exists in Django's FilteredRelation component when used with PostgreSQL. The flaw occurs in column aliases when a suitably crafted dictionary is passed via dictionary expansion (**kwargs) to QuerySet.annotate() or QuerySet.alias(). An attacker can exploit this to manipulate SQL queries, potentially leading to unauthorized data retrieval. The vulnerability is present in Django versions 5.2, 5.1, and 4.2; users are advised to upgrade to versions 5.2.9, 5.1.15, or 4.2.27 respectively. Older unsupported versions like 5.0.x and 3.2.x may also be affected.

## Affected products

- Django Software Foundation Django >= 5.2a1, < 5.2.9
- Django Software Foundation Django >= 5.1a1, < 5.1.15
- Django Software Foundation Django >= 4.2a1, < 4.2.27

## Identifiers

- CVE-2025-13372
- GHSA-rqw2-ghq9-44m7
- PYSEC-2025-104

## Timeline

- 2025-12-02: advisory: Security release announcement by Django project
- 2025-12-02: patched: Fixes released in versions 5.2.9, 5.1.15, and 4.2.27

## References

- [https://docs.djangoproject.com/en/dev/releases/security](https://docs.djangoproject.com/en/dev/releases/security)
- [https://groups.google.com/g/django-announce](https://groups.google.com/g/django-announce)
- [https://www.djangoproject.com/weblog/2025/dec/02/security-releases](https://www.djangoproject.com/weblog/2025/dec/02/security-releases)
- [https://github.com/django/django/commit/479415ce5249bcdebeb6570c72df2a87f45a7bbf](https://github.com/django/django/commit/479415ce5249bcdebeb6570c72df2a87f45a7bbf)
- [https://github.com/django/django/commit/56aea00c3c5e1aacf4ed05f8ee06c2e78f02cea0](https://github.com/django/django/commit/56aea00c3c5e1aacf4ed05f8ee06c2e78f02cea0)

## Related threats

- [Django GeoDjango unbounded recursion denial of service](https://junglewise.ai/threats/cve-2026-15830-django-geodjango-unbounded-recursion-denial-of-service)
- [Django GeoDjango spatial lookups file write and request forgery](https://junglewise.ai/threats/cve-2026-15307-django-geodjango-spatial-lookups-file-write-and-request-forgery)
- [PYSEC-2026-2449 - Django has a Race Condition vulnerability](https://junglewise.ai/threats/cve-2026-25674-django-has-a-race-condition-vulnerability)
- [PYSEC-2026-1296 - Django vulnerable to partial directory traversal via archives](https://junglewise.ai/threats/cve-2025-59682-django-vulnerable-to-partial-directory-traversal-via-archives)
- [Django DomainNameValidator header injection via newline characters](https://junglewise.ai/threats/cve-2026-53878-django-domainnamevalidator-header-injection-via-newline)
