Home

Description

Interpretation Conflict vulnerability in benoitc hackney allows Server Side Request Forgery. hackney_url:normalize/2 URL-decodes the host component after the URL has been parsed into a #hackney_url{} record. OTP's uri_string:parse/1 and inet:parse_address/1 do not decode percent-escapes in the host, so a URL such as http://%31%32%37%2E%30%2E%30%2E%31/ is seen by a caller's allowlist validator with host %31%32%37%2E%30%2E%30%2E%31 (not an IP address), which passes the allowlist check. hackney's normalizer then decodes the host to 127.0.0.1 and opens a TCP connection to loopback. Because hackney:request/5 always calls hackney_url:normalize/2 with no opt-out, every request that takes a binary or list URL is affected. The same technique reaches cloud instance metadata services (169.254.169.254), RFC1918 networks, and any admin interface listening on localhost. This issue affects hackney: from 0.13.0 before 4.0.1.

PUBLISHED Reserved 2026-05-18 | Published 2026-05-25 | Updated 2026-05-27 | Assigner EEF




MEDIUM: 6.9CVSS:4.0/AV:L/AC:L/AT:P/PR:N/UI:N/VC:H/VI:N/VA:N/SC:H/SI:N/SA:N

Problem types

CWE-436 Interpretation Conflict

CWE-918 Server-Side Request Forgery (SSRF)

Product status

Default status
unaffected

0.13.0 (semver) before 4.0.1
affected

Default status
unaffected

4d725507588942fd00efca15b86da3273656510a (git) before 452620a92ec1da2e6b4862a049a2a4f04b42068f
affected

Credits

Ganbagana finder

Benoit Chesneau remediation developer

Jonatan Männchen / EEF analyst

References

github.com/...ackney/security/advisories/GHSA-pj7v-xfvx-wmjq exploit

github.com/...ackney/security/advisories/GHSA-pj7v-xfvx-wmjq vendor-advisory related

cna.erlef.org/cves/CVE-2026-47076.html related

osv.dev/vulnerability/EEF-CVE-2026-47076 related

github.com/...ommit/452620a92ec1da2e6b4862a049a2a4f04b42068f patch

cve.org (CVE-2026-47076)

nvd.nist.gov (CVE-2026-47076)

Download JSON