GitHub Advisoryadvisory · npm
GHSA-36hh-x5p5-jgc8 @hapi/content header parser has a parameter smuggling issue that allows upload-filter bypass via duplicate parameters
HIGH
Official page ↗
- Aliases
- CVE-2026-44974
- Ecosystem
- npm
- Packages
- @hapi/content
- Severity
- High
- CVSS vector
- CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:L/VA:N/SC:N/SI:H/SA:N
- Weaknesses
- CWE-436
- Reviewed
- 2026-05-27
Affected packages
• npm @hapi/content: < 6.0.2 → fixed in 6.0.2
Description
Impact
The two parsers resolved duplicates inconsistently and silently:
• `Content.disposition()` retained the last occurrence of each parameter.
• `Content.type()` retained the first occurrence of charset and boundary.
Either behavior creates a parameter-smuggling primitive when another component in the request-processing chain (a WAF, reverse proxy, security filter, or alternate parser) resolves duplicates the opposite way. The primary attack vector is upload filename allowlist bypass:
`Content-Disposition: form-data; name="file"; filename="safe.txt"; filename="shell.php"`
Patches
The issue has been patched in 6.0.2.
Workarounds
Pre or post validate headers looking for duplicates.
Resources
• RFC 6266 §4.1 — Content-Disposition syntax
• RFC 7231 §3.1.1.1 — Content-Type syntax
• RFC 7230 §3.2.6 — token character set
Related
Alias · CVE (1)
- CVE-2026-44974 @hapi/content provided HTTP Content-* headers parsing. vulnerability
Weakness · CWE (1)
- CWE-436 Interpretation Conflict weakness