Логотип exploitDog
Консоль
Логотип exploitDog

exploitDog

github логотип

GHSA-36hh-x5p5-jgc8

Опубликовано: 27 мая 2026
Источник: github
Github: Прошло ревью
CVSS4: 7.7

Описание

@hapi/content header parser has a parameter smuggling issue that allows upload-filter bypass via duplicate parameters

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

Пакеты

Наименование

@hapi/content

npm
Затронутые версииВерсия исправления

< 6.0.2

6.0.2

EPSS

Процентиль: 40%
0.00472
Низкий

7.7 High

CVSS4

Дефекты

CWE-436

Связанные уязвимости

nvd
2 месяца назад

@hapi/content provided HTTP Content-* headers parsing. Prior to 6.0.2, Content.disposition() retained the last occurrence of each duplicate parameter while Content.type() retained the first occurrence of duplicate charset and boundary parameters, creating a parameter-smuggling primitive when another component in the request-processing chain resolves duplicates the opposite way. This can allow an upload filename allowlist bypass in headers such as Content-Disposition: form-data; name="file"; filename="safe.txt"; filename="shell.php". This issue is fixed in version 6.0.2.

EPSS

Процентиль: 40%
0.00472
Низкий

7.7 High

CVSS4

Дефекты

CWE-436