Skip to content
Heist/ feed
Back to feed
High

ASGI header spoofing via underscore/hyphen conflation

Type: advisorySources: OSV

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.

Products
Not specified
Affected versions
Not specified
Fixed versions
Not specified
CVEs
CVE-2026-3902
Confirmed fixed CVEs
Not specified
Updated in this feed
4 Nov 2026, 22:50 UTC · Revision 1

Source evidence

ASGI header spoofing via underscore/hyphen conflation

core-osv · Original source

Published 7 Apr 2026, 14:22 UTC

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.

osv:CVE-2026-3902
Complete source record
{
  "id": "6656669bbc366231200c9f1ff16c9d789919d7ba2d5146fd872e2c9429f1d0c0",
  "url": "https://osv.dev/vulnerability/CVE-2026-3902",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "ASGI header spoofing via underscore/hyphen conflation",
    "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.",
    "evidence": "osv:CVE-2026-3902",
    "products": [],
    "severity": "high",
    "structured": {
      "id": "CVE-2026-3902",
      "aliases": [
        "BIT-django-2026-3902",
        "CVE-2026-3902",
        "GHSA-mvfq-ggxm-9mc5",
        "PYSEC-2026-51"
      ],
      "metrics": [
        {
          "type": "CVSS_V3",
          "score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N"
        }
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://github.com/django/django",
              "type": "GIT",
              "events": [
                {
                  "introduced": "97aa3b7f08f51669e118f3af5ca91026e39664c3"
                },
                {
                  "fixed": "3396992e837d5146270ea8112bb622c83fa4a919"
                },
                {
                  "introduced": "9e7cc2b628fe8fd3895986af9b7fc9525034c1b0"
                },
                {
                  "fixed": "7d831a9eeb88a6bf484af7b56fe29596bdbf09a6"
                },
                {
                  "introduced": "36b5f39d9372147f0e758f590e35ee2b2bc317dd"
                },
                {
                  "fixed": "141e791f48592011b0f38fb30d44291e3ce74ee0"
                }
              ],
              "database_specific": {
                "extracted_events": [
                  {
                    "cpe": "cpe:2.3:a:djangoproject:django:*:*:*:*:*:*:*:*",
                    "range": [
                      {
                        "introduced": "4.2"
                      },
                      {
                        "fixed": "4.2.30"
                      }
                    ],
                    "source": "CPE_RANGE"
                  },
                  {
                    "cpe": "cpe:2.3:a:djangoproject:django:*:*:*:*:*:*:*:*",
                    "range": [
                      {
                        "introduced": "5.2"
                      },
                      {
                        "fixed": "5.2.13"
                      }
                    ],
                    "source": "CPE_RANGE"
                  },
                  {
                    "cpe": "cpe:2.3:a:djangoproject:django:*:*:*:*:*:*:*:*",
                    "range": [
                      {
                        "introduced": "6.0"
                      },
                      {
                        "fixed": "6.0.4"
                      }
                    ],
                    "source": "CPE_RANGE"
                  }
                ]
              }
            }
          ],
          "versions": [
            "5.2.12",
            "6.0.3",
            "5.2.11",
            "6.0.2",
            "6.0.1",
            "5.2.10",
            "6.0",
            "5.2.9",
            "5.2.8",
            "5.2.7",
            "5.2.6",
            "5.2.5",
            "5.2.4",
            "5.2.3",
            "5.2.2",
            "5.2.1",
            "5.2"
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-3902.json"
          }
        }
      ],
      "modified": "2026-10-28T02:30:40.054321268Z",
      "provider": "osv",
      "references": [
        "https://github.com/django/django/",
        "https://docs.djangoproject.com/en/dev/releases/security/",
        "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/3xxx/CVE-2026-3902.json",
        "https://nvd.nist.gov/vuln/detail/CVE-2026-3902",
        "https://www.djangoproject.com/weblog/2026/apr/07/security-releases/",
        "https://pypi.org/project/Django/",
        "https://groups.google.com/g/django-announce"
      ],
      "provider_metadata": {
        "cwe_ids": [
          "CWE-290"
        ],
        "cna_assigner": "DSF",
        "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/3xxx/CVE-2026-3902.json"
      }
    },
    "related_cves": [
      {
        "value": "CVE-2026-3902",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/severity/0/score"
  },
  "source_id": "core-osv",
  "document_id": 507732,
  "published_at": "2026-04-07T14:22:07.19+00:00"
}