| Package | Affected versions | Patched versions |
|---|---|---|
| @hapi/content | < 6.0.2 | 6.0.2 |
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"
The issue has been patched in 6.0.2.
Pre or post validate headers looking for duplicates.
Running one of these products? Scan your site to see whether it exposes a vulnerable version.
Scan my site free