177 matches found
Hackney has CRLF / header injection in WebSocket upgrade request
Summary CRLF injection in hackney's WebSocket upgrade request builder src/hackneyws.erl. init/1 copies the host, path, headers, and protocols options from the caller-supplied opts map verbatim into wsdata, and dohandshake/1 splices them directly into the raw HTTP/1.1 upgrade request by binary...
EUVD-2026-31687
Hackney has CR/LF injection in query parameter...
Hackney has CR/LF injection in query parameter
Summary hackneyurl:makeurl/3 passes the URL query component directly into the HTTP/1.1 request target without percent-encoding \r or \n. RFC 3986 §3.4 requires characters outside the query grammar to be percent-encoded, but no validation or escaping occurs. An attacker who controls any portion of...
GHSA-J9WQ-VXXC-94WF Hackney has CR/LF injection in query parameter
Summary hackneyurl:makeurl/3 passes the URL query component directly into the HTTP/1.1 request target without percent-encoding \r or \n. RFC 3986 §3.4 requires characters outside the query grammar to be percent-encoded, but no validation or escaping occurs. An attacker who controls any portion of...
GHSA-JQ4M-Q6P2-8GWC Hackney: Per-chunk timeout with unbounded body accumulation enables slow-drip OOM
Summary hackneyh3:awaitresponseloop/6 in src/hackneyh3.erl accumulates the HTTP/3 response body in memory without any size cap. The after Timeout clause is a per-message inactivity timer, not a wall-clock deadline: every received streamdata chunk, housekeeping select message, or settings frame...
Hackney: Per-chunk timeout with unbounded body accumulation enables slow-drip OOM
Summary hackneyh3:awaitresponseloop/6 in src/hackneyh3.erl accumulates the HTTP/3 response body in memory without any size cap. The after Timeout clause is a per-message inactivity timer, not a wall-clock deadline: every received streamdata chunk, housekeeping select message, or settings frame...
Hackney: Cross-origin Redirect Leaks Authorization, Cookie, and Request Body
Summary The HTTP/3 redirect handler in src/hackneyh3.erl forwards the original request headers Authorization, Cookie, Proxy-Authorization and, for 307/308 responses, the original request body to the redirect target without checking whether the target host matches the origin. When followredirect i...
EUVD-2026-31692
Hackney: Cross-origin Redirect Leaks Authorization, Cookie, and Request Body...
GHSA-PJ7V-XFVX-WMJQ Hackney has SSRF allowlist bypass in hackney_url:normalize/2 via percent-encoded host
Summary hackneyurl:normalize/2 URL-decodes the host component of a parsed URL, but the caller's SSRF allowlist runs before normalization using OTP's uristring:parse/1 and inet:parseaddress/1, neither of which decodes percent-escapes in hostnames. A URL like http://%31%32%37%2E%30%2E%30%2E%31/...
Hackney has SSRF allowlist bypass in hackney_url:normalize/2 via percent-encoded host
Summary hackneyurl:normalize/2 URL-decodes the host component of a parsed URL, but the caller's SSRF allowlist runs before normalization using OTP's uristring:parse/1 and inet:parseaddress/1, neither of which decodes percent-escapes in hostnames. A URL like http://%31%32%37%2E%30%2E%30%2E%31/...
EUVD-2026-31689
Hackney has SSRF allowlist bypass in hackneyurl:normalize/2 via percent-encoded host...
GHSA-MP55-P8C9-RFW2 Hackney has CRLF / header injection via unvalidated `domain` and `path` options
Summary CRLF injection in hackneycookie:setcookie/3 src/hackneycookie.erl. The function validates Name and Value against CR/LF and control characters but concatenates the domain and path options verbatim into the output binary. If either option carries attacker-controlled data, a Host header...
EUVD-2026-31683
Hackney has CRLF / header injection via unvalidated domain and path options...
Hackney: `ssl:connect/2` post-handshake upgrade has no timeout
Summary The SOCKS5 transport in src/hackneysocks5.erl correctly applies the caller-supplied timeout to the SOCKS5 negotiation phase, but then upgrades the tunnel to TLS using ssl:connect/2 the two-argument form, which defaults to infinity. The Timeout value is in scope at that call site but is...
EUVD-2026-31685
Hackney: ssl:connect/2 post-handshake upgrade has no timeout...
GHSA-GP9C-PM5M-5CXR Hackney: `ssl:connect/2` post-handshake upgrade has no timeout
Summary The SOCKS5 transport in src/hackneysocks5.erl correctly applies the caller-supplied timeout to the SOCKS5 negotiation phase, but then upgrades the tunnel to TLS using ssl:connect/2 the two-argument form, which defaults to infinity. The Timeout value is in scope at that call site but is...
GHSA-6CP8-V795-JR2J Hackney has an infinite loop on non-token byte at start of an Alt-Svc entry
Summary CVE-2026-47066 is an infinite loop CWE-835 in hackney's Alt-Svc response header parser src/hackneyaltsvc.erl. When an HTTP server returns an Alt-Svc header whose value begins with a non-token byte e.g. !, @, =, ;, the parser enters a tight tail-recursive loop that pins an Erlang scheduler...
EUVD-2026-31686
Hackney has an infinite loop on non-token byte at start of an Alt-Svc entry...
Hackney has an infinite loop on non-token byte at start of an Alt-Svc entry
Summary CVE-2026-47066 is an infinite loop CWE-835 in hackney's Alt-Svc response header parser src/hackneyaltsvc.erl. When an HTTP server returns an Alt-Svc header whose value begins with a non-token byte e.g. !, @, =, ;, the parser enters a tight tail-recursive loop that pins an Erlang scheduler...
CVE-2026-47075
Improper Neutralization of CRLF Sequences vulnerability in benoitc hackney allows HTTP Request Splitting. hackney does not percent-encode carriage return \r or line feed \n characters in the URL query component before constructing the HTTP/1.1 request target. Characters outside the grammar define...