Skip to content
Fencer Vulns
high 7.5

CVE-2026-3902 json

ASGI header spoofing via underscore/hyphen conflation

published 2026-04-07 7 mo ago modified 2026-10-26 13 d ago also BIT-django-2026-3902 , EUVD-2026-19686 , GHSA-mvfq-ggxm-9mc5 , PYSEC-2026-51

cvss
7.5
version 3.1, CNA
cisa kev
Not listed
not in CISA's catalog
epss
0.4%
EPSS 0.4% chance of exploitation in 30 days, percentile 38%
public exploits
0
none known

Summary

An issue was discovered in 6.0 before 6.0.4, 5.2 before 5.2.13, and 4.2 before 4.2.30. `ASGIRequest` allows a remote attacker to spoof headers by exploiting an ambiguous mapping of two header variants (with hyphens or with underscores) to a single version with underscores. 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 Tarek Nakkouch for reporting this issue.

Patch / fix

  • pypi django 4.2.30, 5.2.13, 6.0.4
  • bitnami django 4.2.30, 5.2.13, 6.0.4
  • djangoproject Django 4.2.30, 5.2.13, 6.0.4
  • python-django Debian 14 3:4.2.30-1

debian advisories DEBIAN-CVE-2026-3902

  • python-django Ubuntu 22.04 LTS 2:3.2.12-2ubuntu1.26
  • python-django Ubuntu 24.04 LTS 3:4.2.11-1ubuntu1.15
  • python-django Ubuntu 25.10 3:5.2.4-1ubuntu2.4

ubuntu advisories UBUNTU-CVE-2026-3902

Ubuntu security data © Canonical Ltd., from https://github.com/canonical/ubuntu-security-notices via OSV; changed: normalised to fixed package versions per release. CC BY-SA 4.0

  • python-Django5 openSUSE Tumbleweed 5.2.16-1.1
  • python-Django openSUSE Tumbleweed 5.2.13-1.1
  • python-Django openSUSE Leap 16.0 5.2.4-bp160.7.1
  • python-Django4 openSUSE Tumbleweed 4.2.30-1.1
  • python-Django6 openSUSE Tumbleweed 6.0.4-1.1

opensuse advisories openSUSE-SU-2026:11270-1openSUSE-SU-2026:10567-1openSUSE-SU-2026:20578-1openSUSE-SU-2026:10516-1openSUSE-SU-2026:10517-1

  • py3-django Alpine 3.23 4.2.30-r0
  • py3-django Alpine 3.24 5.2.13-r0

alpine advisories ALPINE-CVE-2026-3902

Alpine secdb © Alpine Linux, from https://secdb.alpinelinux.org via OSV; changed: normalised to fixed package versions per release. CC BY-SA 4.0

Vendor advisories

What the vendors themselves say about their products: affected, fixed or not affected, and what to do.

red hat product security vex CVE-2026-3902 updated cvss 5.3

Django: Django: Header spoofing via ambiguous header mapping

  • Red Hat Ansible Automation Platform 2 automation-controller, redhat-user-workloads/es-team-tenant/automation-reports, ansible-automation-platform-24/lightspeed-rhel8-operator, ansible-automation-platform-26/lightspeed-rhel9-operator, redhat-user-workloads/ansible-tenant/ansible-automation-platform-26/hub-rhel9, redhat-user-workloads/ansible-tenant/ansible-automation-platform-26/gateway-rhel9, +3 more Red Hat Discovery 2 redhat-user-workloads/discovery-tenant/discovery/discovery-server Red Hat Satellite 6 redhat-user-workloads/insights-management-tenant/satellite-iop/iop-advisor-backend-sat-6-18
    affected: workaround, no fix available “Fix deferred”

Red Hat CSAF VEX © Red Hat, Inc., from https://security.access.redhat.com/data/csaf/v2/vex/; changed: reduced to product statuses and remediations. CC BY 4.0 · csaf

CISA SSVC

Exploitation
none
Automatable
yes
Technical impact
partial
Assessed
7 mo ago

Exploit prediction

0.44% chance of exploitation in the next 30 days, higher than 38% of all scored CVEs (FIRST EPSS, 2026-11-08).

CVSS scores

assigned by version score vector
CISA ADP 3.1 7.5 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N
GitHub 3.1 7.5 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N
CNA 3.1 7.5 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N
OSV 3.1 7.5 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N

Affected packages

ecosystem package affected fixed in
pypi django
>=6.0, <6.0.4
>=5.2, <5.2.13
>=4.2, <4.2.30
6.0.4
5.2.13
4.2.30
bitnami django
>=4.2.0, <4.2.30
>=5.2.0, <5.2.13
>=6.0.0, <6.0.4
4.2.30
5.2.13
6.0.4

Affected products

  • djangoproject Django

Classification

Weakness
  • CWE-290 Authentication Bypass by Spoofing
Technology feeds

References

Sources

Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.