CVE-2025-64459: CVE-2025-64459: An issue was discovered in 5.1 before 5.1.14, 4.2 before 4.2.26, and 5.2 before 5.2.8. The…
djangoproject · django · NVD published 2025-11-05 · posted 2025-11-06 · last modified 2026-06-17
What it is
An issue was discovered in 5.1 before 5.1.14, 4.2 before 4.2.26, and 5.2 before 5.2.8. The methods `QuerySet.filter()`, `QuerySet.exclude()`, and `QuerySet.get()`, and the class `Q()`, are subject to SQL injection when using a suitably crafted dictionary, with dictionary expansion, as the `_connector` argument. Earlier, unsupported Django series (such as 5.0.x, 4.1.x, and 3.2.x) were not evaluated and may also be affected. Django would like to thank cyberstan for reporting this issue.
| Weakness | CWE-89 |
|---|---|
| CVSS vector | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N (source: 134c704f-9b21-4f2e-91b3-4a467353bcc0) |
| ATT&CK tactics | Initial Access → Collection |
Exploitation evidence
First exploit evidence seen: 2025-11-06 (earliest date across the sources below).
Exploited in the wild
No source on this site lists in-the-wild exploitation yet (CISA KEV, VulnCheck KEV).
Public exploit code
Exploit-DB
- EDB-52456: Django 5.1.13 - SQL Injection (2025-12-03)
GitHub proof-of-concept repositories
10 public repositories from 10 accounts, first seen 2025-11-06. Most starred: omarkurt/django-connector-CVE-2025-64459-testbed (2 stars), view repository.
Verify before running: public PoCs can be malicious. Read the code and only run it in an isolated lab. A PoC means exploit code is public, not that this CVE is exploited in the wild.
Sources: Exploit-DB (OffSec) · nomi-sec/PoC-in-GitHub.
Defend the Chain
The attack chain for CVE-2025-64459 laid across the MITRE ATT&CK Enterprise tactics. Solid cards come from the MITRE CTID KEV mappings; dashed cards are inferred by CVERadar from the CWE or description. Correct defences are real ATT&CK mitigations for that technique.
Pick a red technique card on the board, then choose the defence that stops it.
Defend against T1190 Exploit Public-Facing Application Inferred
Inferred from CWE CWE-89
How to fix it
Fixed versions
- djangoproject django: upgrade to 4.2.26 or later (affected from 4.2)
- djangoproject django: upgrade to 5.1.14 or later (affected from 5.1)
- djangoproject django: upgrade to 5.2.8 or later (affected from 5.2)
Derived from the NVD CPE configuration (versionEndExcluding / versionEndIncluding). Always confirm with the vendor advisory.
Vendor advisories and patches
- https://docs.djangoproject.com/en/dev/releases/security/ (Vendor Advisory)
- https://www.djangoproject.com/weblog/2025/nov/05/security-releases/ (Vendor Advisory)
MITRE ATT&CK mitigations for this chain
- M1048 Application Isolation and Sandboxing (for T1190) : Application isolation will limit what other processes and system features the exploited target can access.
- M1037 Filter Network Traffic (for T1190) : Restrict outbound network traffic from public-facing servers to prevent unauthorized connections from initiating communications with attacker-controlled infrastructure. While this may not prevent the initial exploitation, it limits the attacker's ability to verify and control the compromised server post-exploit, reduci
- M1030 Network Segmentation (for T1190) : Segment externally facing servers and services from the rest of the network with a DMZ or on separate hosting infrastructure.
- M1016 Vulnerability Scanning (for T1190) : Regularly scan externally facing systems for vulnerabilities and establish procedures to rapidly patch systems when critical vulnerabilities are discovered through scanning and through public disclosure.
- M1026 Privileged Account Management (for T1190) : Use least privilege for service accounts will limit what permissions the exploited process gets on the rest of the system.
- M1050 Exploit Protection (for T1190) : Web Application Firewalls may be used to limit exposure of applications to prevent exploit traffic from reaching the application.
- M1035 Limit Access to Resource Over Network (for T1190) : Ensure that all publicly exposed services are actually intended to be so, and restrict access to any that should only be available internally.
- M1051 Update Software (for T1190) : Update software regularly by employing patch management for externally exposed applications.
- M1057 Data Loss Prevention (for T1005) : Data loss prevention can restrict access to sensitive data and detect sensitive data that is unencrypted.
Detection Generic guidance
- Initial Access: Alert on unusual requests to the affected service (odd paths, oversized payloads, exploit strings) in WAF, reverse-proxy and application logs.
- Collection: Watch for bulk reads of databases, file shares or mailboxes by the affected service.
Response checklist Generic guidance
- Inventory: find every instance of the affected product and version (include internet-facing and forgotten ones).
- Patch or mitigate per the vendor advisory; if you cannot patch, remove internet exposure or apply the vendor workaround.
- Assume compromise if the system was exposed before patching: hunt for the indicators in the advisory and review logs back to the disclosure date.
- Rotate credentials and secrets stored on or used by the affected system if compromise cannot be ruled out.
Sources
- NVD: CVE-2025-64459
- CVE.org record
- FIRST EPSS (2026-10-24)
- https://groups.google.com/g/django-announce (Mailing List)
- https://shivasurya.me/security/django/2025/11/07/django-sql-injection-CVE-2025-64459.html (Exploit, Third Party Advisory)