p PatchFirst

CVE-2026-3902

CVE-2026-3902 · ASGI header spoofing via underscore/hyphen conflation

This page contains facts from public vulnerability sources. Check the original advisory before updating.

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.

CVSS 7.5 · High · EPSS 0.5% · Fix available

Published
Updated

Stack: system · python

Affected products and versions

  • django

    Versions
    • ≥ 6.0, < 6.0.4: Affected (semver)
    • 6.0.4: Not affected (semver)
    • ≥ 5.2, < 5.2.13: Affected (semver)
    • 5.2.13: Not affected (semver)
    • ≥ 4.2, < 4.2.30: Affected (semver)
    • 4.2.30: Not affected (semver)

    Update to 4.2.30; Update to 5.2.13; Update to 6.0.4

  • python-django Debian:12

    Versions
    • 3:3.2.19-1
    • 3:3.2.19-1+deb12u1
    • 3:3.2.19-1+deb12u1~bpo11+1
    • 3:3.2.19-1+deb12u2
    • 3:3.2.20-1
    • 3:3.2.20-1.1
    • 3:3.2.21-1
    • 3:3.2.25-0+deb12u1
    • 3:3.2.25-0+deb12u2
    • 3:3.2.25-0+deb12u3
    • 3:3.2.25-0+deb12u4
    • 3:3.2.25-0+deb12u5
    • 3:4.1-1
    • 3:4.1.1-1
    • 3:4.1.2-1
    • 3:4.1.3-1
    • 3:4.1.4-1
    • 3:4.1.5-1
    • 3:4.2-1
    • 3:4.2.1-1
    • 3:4.2.10-1
    • 3:4.2.11-1
    • 3:4.2.13-1
    • 3:4.2.14-1
    • 3:4.2.15-1
    • 3:4.2.15-1~bpo12+1
    • 3:4.2.16-1
    • 3:4.2.17-1
    • 3:4.2.17-2
    • 3:4.2.18-1
    • 3:4.2.18-1~bpo12+1
    • 3:4.2.19-1
    • 3:4.2.19-1~bpo12+1
    • 3:4.2.2-1
    • 3:4.2.20-1
    • 3:4.2.20-1~bpo12+1
    • 3:4.2.21-1
    • 3:4.2.21-1~bpo12+1
    • 3:4.2.22-1
    • 3:4.2.23-1
    • 3:4.2.24-1
    • 3:4.2.25-1
    • 3:4.2.25-2
    • 3:4.2.26-1
    • 3:4.2.27-1
    • 3:4.2.27-2
    • 3:4.2.28-1
    • 3:4.2.29-1
    • 3:4.2.3-1
    • 3:4.2.30-1
    • 3:4.2.4-1
    • 3:4.2.5-1
    • 3:4.2.5-2
    • 3:4.2.6-1
    • 3:4.2.8-1
    • 3:4.2.9-1
    • 3:4.2~alpha1-1
    • 3:4.2~beta1-1
    • 3:4.2~rc1-1
    • 3:5.0-1
    • 3:5.0.1-1
    • 3:5.0.2-1
    • 3:5.0.3-1
    • 3:5.0.4-1
    • 3:5.0.6-1
    • 3:5.0~alpha1-1
    • 3:5.0~rc1-1
    • 3:5.1-1
    • 3:5.1.1-1
    • 3:5.1.2-1
    • 3:5.1.3-1
    • 3:5.1.4-1
    • 3:5.1.5-1
    • 3:5.1~alpha1-1
    • 3:5.1~beta1-1
    • 3:5.1~rc1-1
    • 3:5.2-1
    • 3:5.2.1-1
    • 3:5.2.13-1
    • 3:5.2.14-1
    • 3:5.2.14-2
    • 3:5.2.15-1
    • 3:5.2.15-2
    • 3:5.2.15-2~bpo13+1
    • 3:5.2.16-1
    • 3:5.2.16-1~bpo13+1
    • 3:5.2.17-1
    • 3:5.2.17-2
    • 3:5.2.2-1
    • 3:5.2.3-1
    • 3:5.2.4-1
    • 3:5.2.5-1
    • 3:5.2.6-1
    • 3:5.2~alpha1-1
    • 3:5.2~beta1-1
    • 3:5.2~rc1-1
    • 3:6.0-1
    • 3:6.0.1-1
    • 3:6.0.2-1
    • 3:6.0.3-1
    • 3:6.0.4-1
    • 3:6.0.5-1
    • 3:6.0.6-1
    • 3:6.0~alpha1-1
    • 3:6.0~beta1-1
    • 3:6.0~rc1-1
    • 3:6.1-1
    • 3:6.1.1-1
    • 3:6.1~beta1-1
    • 3:6.1~rc1-1
    Affected ranges
    • ECOSYSTEM: (−∞, +∞)

    No fix published

  • python-django Debian:13

    Versions
    • 3:4.2.23-1
    • 3:4.2.24-1
    • 3:4.2.25-1
    • 3:4.2.25-2
    • 3:4.2.26-1
    • 3:4.2.27-0+deb13u1
    • 3:4.2.27-1
    • 3:4.2.27-2
    • 3:4.2.28-0+deb13u1
    • 3:4.2.28-0+deb13u2
    • 3:4.2.28-1
    • 3:4.2.29-1
    • 3:4.2.30-1
    • 3:5.0-1
    • 3:5.0.1-1
    • 3:5.0.2-1
    • 3:5.0.3-1
    • 3:5.0.4-1
    • 3:5.0.6-1
    • 3:5.0~alpha1-1
    • 3:5.0~rc1-1
    • 3:5.1-1
    • 3:5.1.1-1
    • 3:5.1.2-1
    • 3:5.1.3-1
    • 3:5.1.4-1
    • 3:5.1.5-1
    • 3:5.1~alpha1-1
    • 3:5.1~beta1-1
    • 3:5.1~rc1-1
    • 3:5.2-1
    • 3:5.2.1-1
    • 3:5.2.13-1
    • 3:5.2.14-1
    • 3:5.2.14-2
    • 3:5.2.15-1
    • 3:5.2.15-2
    • 3:5.2.15-2~bpo13+1
    • 3:5.2.16-1
    • 3:5.2.16-1~bpo13+1
    • 3:5.2.17-1
    • 3:5.2.17-2
    • 3:5.2.2-1
    • 3:5.2.3-1
    • 3:5.2.4-1
    • 3:5.2.5-1
    • 3:5.2.6-1
    • 3:5.2~alpha1-1
    • 3:5.2~beta1-1
    • 3:5.2~rc1-1
    • 3:6.0-1
    • 3:6.0.1-1
    • 3:6.0.2-1
    • 3:6.0.3-1
    • 3:6.0.4-1
    • 3:6.0.5-1
    • 3:6.0.6-1
    • 3:6.0~alpha1-1
    • 3:6.0~beta1-1
    • 3:6.0~rc1-1
    • 3:6.1-1
    • 3:6.1.1-1
    • 3:6.1~beta1-1
    • 3:6.1~rc1-1
    Affected ranges
    • ECOSYSTEM: (−∞, +∞)

    No fix published

  • python-django Debian:14

    Versions
    • 3:4.2.23-1
    • 3:4.2.24-1
    • 3:4.2.25-1
    • 3:4.2.25-2
    • 3:4.2.26-1
    • 3:4.2.27-1
    • 3:4.2.27-2
    • 3:4.2.28-1
    • 3:4.2.29-1
    Affected ranges
    • ECOSYSTEM: < 3:4.2.30-1

    Update to 3:4.2.30-1

  • django PyPI

    Versions
    • 6.0
    • 6.0.1
    • 6.0.2
    • 6.0.3
    Affected ranges
    • ECOSYSTEM: ≥ 6.0, < 6.0.4

    Update to 6.0.4

  • django PyPI

    Versions
    • 5.2
    • 5.2.1
    • 5.2.10
    • 5.2.11
    • 5.2.12
    • 5.2.2
    • 5.2.3
    • 5.2.4
    • 5.2.5
    • 5.2.6
    • 5.2.7
    • 5.2.8
    • 5.2.9
    Affected ranges
    • ECOSYSTEM: ≥ 5.2, < 5.2.13

    Update to 5.2.13

  • django PyPI

    Versions
    • 4.2
    • 4.2.1
    • 4.2.10
    • 4.2.11
    • 4.2.12
    • 4.2.13
    • 4.2.14
    • 4.2.15
    • 4.2.16
    • 4.2.17
    • 4.2.18
    • 4.2.19
    • 4.2.2
    • 4.2.20
    • 4.2.21
    • 4.2.22
    • 4.2.23
    • 4.2.24
    • 4.2.25
    • 4.2.26
    • 4.2.27
    • 4.2.28
    • 4.2.29
    • 4.2.3
    • 4.2.4
    • 4.2.5
    • 4.2.6
    • 4.2.7
    • 4.2.8
    • 4.2.9
    Affected ranges
    • ECOSYSTEM: ≥ 4.2, < 4.2.30

    Update to 4.2.30

  • django PyPI

    Versions
    • 4.2
    • 4.2.1
    • 4.2.10
    • 4.2.11
    • 4.2.12
    • 4.2.13
    • 4.2.14
    • 4.2.15
    • 4.2.16
    • 4.2.17
    • 4.2.18
    • 4.2.19
    • 4.2.2
    • 4.2.20
    • 4.2.21
    • 4.2.22
    • 4.2.23
    • 4.2.24
    • 4.2.25
    • 4.2.26
    • 4.2.27
    • 4.2.28
    • 4.2.29
    • 4.2.3
    • 4.2.4
    • 4.2.5
    • 4.2.6
    • 4.2.7
    • 4.2.8
    • 4.2.9
    • 5.2
    • 5.2.1
    • 5.2.10
    • 5.2.11
    • 5.2.12
    • 5.2.2
    • 5.2.3
    • 5.2.4
    • 5.2.5
    • 5.2.6
    • 5.2.7
    • 5.2.8
    • 5.2.9
    • 6.0
    • 6.0.1
    • 6.0.2
    • 6.0.3
    Affected ranges
    • ECOSYSTEM: ≥ 4.2, < 4.2.30 ∪ ≥ 5.2, < 5.2.13 ∪ ≥ 6.0, < 6.0.4

    Update to 4.2.30; Update to 5.2.13; Update to 6.0.4

  • python-django Ubuntu:22.04:LTS

    Versions
    • 2:2.2.24-1ubuntu1
    • 2:3.2.12-2
    • 2:3.2.12-2ubuntu1
    • 2:3.2.12-2ubuntu1.1
    • 2:3.2.12-2ubuntu1.2
    • 2:3.2.12-2ubuntu1.3
    • 2:3.2.12-2ubuntu1.4
    • 2:3.2.12-2ubuntu1.5
    • 2:3.2.12-2ubuntu1.6
    • 2:3.2.12-2ubuntu1.7
    • 2:3.2.12-2ubuntu1.8
    • 2:3.2.12-2ubuntu1.9
    • 2:3.2.12-2ubuntu1.10
    • 2:3.2.12-2ubuntu1.11
    • 2:3.2.12-2ubuntu1.12
    • 2:3.2.12-2ubuntu1.13
    • 2:3.2.12-2ubuntu1.14
    • 2:3.2.12-2ubuntu1.15
    • 2:3.2.12-2ubuntu1.16
    • 2:3.2.12-2ubuntu1.17
    • 2:3.2.12-2ubuntu1.18
    • 2:3.2.12-2ubuntu1.19
    • 2:3.2.12-2ubuntu1.20
    • 2:3.2.12-2ubuntu1.21
    • 2:3.2.12-2ubuntu1.22
    • 2:3.2.12-2ubuntu1.23
    • 2:3.2.12-2ubuntu1.24
    • 2:3.2.12-2ubuntu1.25
    Affected ranges
    • ECOSYSTEM: < 2:3.2.12-2ubuntu1.26

    Update to 2:3.2.12-2ubuntu1.26

  • python-django Ubuntu:24.04:LTS

    Versions
    • 3:4.2.4-1ubuntu2
    • 3:4.2.8-1
    • 3:4.2.9-1
    • 3:4.2.11-1
    • 3:4.2.11-1ubuntu1
    • 3:4.2.11-1ubuntu1.1
    • 3:4.2.11-1ubuntu1.2
    • 3:4.2.11-1ubuntu1.3
    • 3:4.2.11-1ubuntu1.4
    • 3:4.2.11-1ubuntu1.5
    • 3:4.2.11-1ubuntu1.6
    • 3:4.2.11-1ubuntu1.7
    • 3:4.2.11-1ubuntu1.8
    • 3:4.2.11-1ubuntu1.9
    • 3:4.2.11-1ubuntu1.10
    • 3:4.2.11-1ubuntu1.11
    • 3:4.2.11-1ubuntu1.12
    • 3:4.2.11-1ubuntu1.13
    • 3:4.2.11-1ubuntu1.14
    Affected ranges
    • ECOSYSTEM: < 3:4.2.11-1ubuntu1.15

    Update to 3:4.2.11-1ubuntu1.15

  • python-django Ubuntu:25.10

    Versions
    • 3:4.2.18-1ubuntu1
    • 3:4.2.18-1ubuntu1.1
    • 3:5.2.4-1
    • 3:5.2.4-1ubuntu1
    • 3:5.2.4-1ubuntu2
    • 3:5.2.4-1ubuntu2.1
    • 3:5.2.4-1ubuntu2.2
    • 3:5.2.4-1ubuntu2.3
    Affected ranges
    • ECOSYSTEM: < 3:5.2.4-1ubuntu2.4

    Update to 3:5.2.4-1ubuntu2.4

Original sources

Check your server →