{"id":"CVE-2026-3902","state":"PUBLISHED","title":"ASGI header spoofing via underscore/hyphen conflation","description":"An issue was discovered in 6.0 before 6.0.4, 5.2 before 5.2.13, and 4.2 before 4.2.30.\n`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.\nEarlier, unsupported Django series (such as 5.0.x, 4.1.x, and 3.2.x) were not evaluated and may also be affected.\nDjango would like to thank Tarek Nakkouch for reporting this issue.","publishedAt":"2026-04-07T14:22:07.190Z","updatedAt":"2026-04-07T16:14:07.198Z","severity":{"score":7.5,"label":"High","version":"3.1","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N","source":"CISA-ADP"},"assigner":"DSF","products":["djangoproject Django"],"affected":[{"vendor":"djangoproject","product":"Django","packageName":"django","defaultStatus":"unaffected","versions":[{"version":"6.0","status":"affected","lessThan":"6.0.4","versionType":"semver"},{"version":"6.0.4","status":"unaffected","versionType":"semver"},{"version":"5.2","status":"affected","lessThan":"5.2.13","versionType":"semver"},{"version":"5.2.13","status":"unaffected","versionType":"semver"},{"version":"4.2","status":"affected","lessThan":"4.2.30","versionType":"semver"},{"version":"4.2.30","status":"unaffected","versionType":"semver"}],"collectionURL":"https://pypi.org/project/Django/","repo":"https://github.com/django/django/"}],"references":["https://docs.djangoproject.com/en/dev/releases/security/","https://groups.google.com/g/django-announce","https://www.djangoproject.com/weblog/2026/apr/07/security-releases/"],"weaknesses":["CWE-290"],"ingestedAt":"2026-10-29T20:11:50.837Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/3xxx/CVE-2026-3902.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-3902","state":"PUBLISHED","datePublished":"2026-04-07T14:22:07.190Z","dateUpdated":"2026-04-07T16:14:07.198Z","assignerShortName":"DSF","assignerOrgId":"6a34fbeb-21d4-45e7-8e0a-62b95bc12c92","dateReserved":"2026-03-10T18:33:26.472Z"},"containers":{"cna":{"title":"ASGI header spoofing via underscore/hyphen conflation","descriptions":[{"lang":"en","value":"An issue was discovered in 6.0 before 6.0.4, 5.2 before 5.2.13, and 4.2 before 4.2.30.\n`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.\nEarlier, unsupported Django series (such as 5.0.x, 4.1.x, and 3.2.x) were not evaluated and may also be affected.\nDjango would like to thank Tarek Nakkouch for reporting this issue."}],"affected":[{"vendor":"djangoproject","product":"Django","packageName":"django","defaultStatus":"unaffected","versions":[{"version":"6.0","status":"affected","lessThan":"6.0.4","versionType":"semver"},{"version":"6.0.4","status":"unaffected","versionType":"semver"},{"version":"5.2","status":"affected","lessThan":"5.2.13","versionType":"semver"},{"version":"5.2.13","status":"unaffected","versionType":"semver"},{"version":"4.2","status":"affected","lessThan":"4.2.30","versionType":"semver"},{"version":"4.2.30","status":"unaffected","versionType":"semver"}],"collectionURL":"https://pypi.org/project/Django/","repo":"https://github.com/django/django/"}],"references":[{"url":"https://docs.djangoproject.com/en/dev/releases/security/","name":"Django security archive","tags":["vendor-advisory"]},{"url":"https://groups.google.com/g/django-announce","name":"Django releases announcements","tags":["mailing-list"]},{"url":"https://www.djangoproject.com/weblog/2026/apr/07/security-releases/","name":"Django security releases issued: 6.0.4, 5.2.13, and 4.2.30","tags":["vendor-advisory"]}],"metrics":[{"other":{"content":{"value":"low","namespace":"https://docs.djangoproject.com/en/dev/internals/security/#security-issue-severity-levels"},"type":"Django severity rating"}}],"problemTypes":[{"descriptions":[{"cweId":"CWE-290","lang":"en","description":"CWE-290: Authentication Bypass by Spoofing","type":"CWE"}]}],"providerMetadata":{"shortName":"DSF","orgId":"6a34fbeb-21d4-45e7-8e0a-62b95bc12c92","dateUpdated":"2026-04-07T14:22:07.190Z"},"impacts":[{"capecId":"CAPEC-151","descriptions":[{"lang":"en","value":"CAPEC-151: Identity Spoofing"}]}],"credits":[{"lang":"en","type":"reporter","value":"Tarek Nakkouch"},{"lang":"en","type":"remediation developer","value":"Jacob Walls"},{"lang":"en","type":"coordinator","value":"Jacob Walls"}],"timeline":[{"lang":"en","time":"2025-12-23T12:00:00.000Z","value":"Initial report received."},{"lang":"en","time":"2026-03-10T12:00:00.000Z","value":"Vulnerability confirmed."},{"lang":"en","time":"2026-04-07T09:00:00.000Z","value":"Security release issued."}],"datePublic":"2026-04-07T09:00:00.000Z","source":{"discovery":"EXTERNAL"},"x_generator":{"engine":"cvelib 1.8.0"}},"adp":[{"title":"CISA ADP Vulnrichment","metrics":[{"cvssV3_1":{"scope":"UNCHANGED","version":"3.1","baseScore":7.5,"attackVector":"NETWORK","baseSeverity":"HIGH","vectorString":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N","integrityImpact":"HIGH","userInteraction":"NONE","attackComplexity":"LOW","availabilityImpact":"NONE","privilegesRequired":"NONE","confidentialityImpact":"NONE"}},{"other":{"type":"ssvc","content":{"timestamp":"2026-04-07T16:14:03.870418Z","id":"CVE-2026-3902","options":[{"Exploitation":"none"},{"Automatable":"yes"},{"Technical Impact":"partial"}],"role":"CISA Coordinator","version":"2.0.3"}}}],"providerMetadata":{"shortName":"CISA-ADP","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","dateUpdated":"2026-04-07T16:14:07.198Z"}}]}}}