CVE-2024-53908

An issue was discovered in Django 5.1 before 5.1.4, 5.0 before 5.0.10, and 4.2 before 4.2.17

Critical · published December 6, 2024

CVSS v3.1
9.8
EPSS
1%
Percentile
72.5
In the wild
Unconfirmed
What it is

🚨 An untrusted key can unlock a Pandora's box! The Django 5.1 and earlier versions have a sneaky SQL injection vulnerability lurking when using Oracle databases. 🔥 Think of this like a restaurant that accepts any order without checking if the customer is really who they say they are. If someone places a shady order, they could end up messing with the entire menu! An attacker can inject malicious SQL commands through a seemingly innocent field, potentially compromising your entire database. This could lead to unauthorized data access, manipulation, and even deletion — a recipe for chaos!

Put simply

Think of this like a restaurant that accepts any order without checking if the customer is really who they say they are. If someone places a shady order, they could end up messing with the entire menu! This vulnerability arises from the direct use of the django.db.models.fields.json.HasKey lookup with untrusted data as an lhs value in Oracle databases, which can be exploited for SQL injection.

What to do

An attacker can inject malicious SQL commands through a seemingly innocent field, potentially compromising your entire database. This could lead to unauthorized data access, manipulation, and even deletion — a recipe for chaos! Immediately upgrade to Django 5.1.4, 5.0.10, or 4.2.17 to patch this vulnerability. Review any use of the jsonfield.has_key lookup and ensure that untrusted data is never passed into it! You've got this! With a quick update, you'll fortify your application against this threat. 🛡️

The record
Technical detail
CVSS v3.1
9.8 · CRITICAL
Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
CVSS v4.0
Not supplied
EPSS
0.01415 · 72.5th percentile
Published
2024-12-06T00:00Z
EPSS history
Timeline
  • 06 DEC 00:00Z
    An issue was discovered in Django 5.1 before 5.1.4, 5.0 before 5.0.10, and 4.2 before 4.2.17
    cvelistv5