Skip to main content

hackney EUVDEUVD-2026-109833

| CVE-2026-112880 LOW
HTTP Response Splitting (CWE-113)
2026-10-26 EEF GHSA-5qp8-qrjx-2669
2.1
CVSS 4.0 · Vendor: EEF
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Control proxy or MITM the CONNECT path
  2. Delivery
    Return 407 with CR/LF/NUL in challenge headers
  3. Exploit
    App callback echoes bytes into Proxy-Authorization value
  4. Execution
    hackney writes value unchecked into CONNECT retry
  5. Impact
    Injected header lines reach the proxy

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization HTTP response header sanitization
Exploitation Conditions

Exploitation requires a specific non-default setup: the application must use hackney over an HTTP CONNECT proxy, must configure a proxy_auth_fun callback, the proxy must return a 407, AND the callback must derive its returned binary from untrusted data such as the proxy's challenge headers (not static credentials). Attacker influence therefore depends on controlling or MITM-ing the proxy responses. Limiting factors: callbacks returning static credentials are not attacker-influenced; other CONNECT-path values (target host, request headers) were already checked for control bytes; and version 4.9.0 fully remediates by rejecting CR/LF/NUL values. Affected versions: hackney from 2.0.0 before 4.9.0.

Impact

Low real-world priority. The input CVSS 4.0 base score is 2.1 and the vuln.today decision label is 'monitor', not act_now or emergency. No EPSS score is provided, the CVE is not listed in CISA KEV, and no public exploit or PoC reference is present (only the fix PR/commit). All severity signals are therefore consistent and low. One conflict to verify: the supplied vector uses AV:L (local), yet the description states the malicious value is attacker-influenced via the proxy's 407 challenge headers, which is a network-sourced data path - AV:L reads as a config/operator-model choice rather than a true local-only trigger, so verify the attack-vector intent with the vendor/CNA. Exploitability is further gated by a non-default precondition (a proxy_auth_fun callback that derives its return value from untrusted data), making this a targeted, configuration-dependent integrity issue rather than a widespread threat.

Exploit ScenarioDerived

An Erlang/Elixir application uses hackney through an HTTP CONNECT proxy and configures a proxy_auth_fun that builds the Proxy-Authorization value from the proxy's 407 challenge headers. A malicious or man-in-the-middle proxy returns a challenge whose header values embed CR, LF or NUL bytes; on the CONNECT retry hackney writes that value unchecked, so the attacker-chosen bytes add extra header lines to the request sent to the proxy. No public exploit is identified at time of analysis.

Monitor Track and reassess. Why: LOW severity (CVSS 0.1-3.9).
Patch available 0.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 26, 2026

HTTP request splitting in the Erlang hackney HTTP client (2.0.0 through 4.9.0) allows a caller-supplied proxy_auth_fun return value to inject additional header lines into the CONNECT request hackney sends to an HTTP proxy. The issue is only reachable in a non-default setup: hackney must be used over an HTTP CONNECT proxy, a proxy_auth_fun callback must be configured, the proxy must answer with a 407, and the callback must build its returned binary from untrusted data such as the proxy's challenge headers instead of static credentials, so an attacker must control or intercept the proxy response to influence the value. Impact is limited to request integrity against the proxy, no public exploit has been identified at time of analysis, and real-world priority is low; the vendor-released fix is 4.9.0.

RemediationAI

Upgrade hackney to 4.9.0, the vendor-released patch that rejects proxy_auth_fun values containing CR, LF or NUL with {error, {proxy_auth_error, invalid_header}} (fix in PR https://github.com/benoitc/hackney/pull/989, commit https://github.com/benoitc/hackney/commit/5ee7d7d19eba27e774667d472feb1e93a08af7f9, release https://github.com/benoitc/hackney/releases/tag/4.9.0). Where an immediate upgrade is not possible, the effective compensating control is to harden the callback itself: validate or strip CR, LF and NUL bytes from any value returned by proxy_auth_fun, or return only static credentials and never derive the value from the proxy's challenge headers; this depends on the application owner editing each callback correctly and can break legitimate authentication if the sanitization is too aggressive. When taking 4.9.0, review the other behaviour changes bundled in that release: a new max_body_size option now caps buffered response bodies at 512 MiB by default (raise it or set infinity for large downloads), redirects no longer resend basic_auth and cookie to a different port or over plain HTTP after HTTPS unless location_trusted is set, and HTTPS proxies reached via CONNECT now get normal CA bundle and hostname verification subject to proxy_ssl_options.

Affected VersionsENISA

hackney 5df5a74a2817d5b12880d217db33253ff1fae1b5 <5ee7d7d19eba27e774667d472feb1e93a08af7f9
hackney 2.0.0 <4.9.0

Affected Packages

euvd hackney fix: 4.9.0

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

The root cause is CWE-113, improper neutralization of CRLF sequences in HTTP headers, in the Erlang hackney HTTP client's CONNECT proxy authentication path. After an HTTP CONNECT proxy replies 407, hackney_http_connect:handle_proxy_auth/11 invokes the caller's proxy_auth_fun with the status code and response headers, then writes the returned binary verbatim into the Proxy-Authorization line of the CONNECT retry without validating it for control bytes. A CR, LF or NUL byte in that value terminates the header line early and appends attacker-chosen header lines to the request sent to the proxy. Other caller-supplied values on the same CONNECT path, namely the target host and the request headers, were already screened for control bytes, which makes this the only remaining unchecked injection point in that flow. The flaw is a request-splitting primitive against the proxy hop with limited integrity impact and no confidentiality or availability impact assessed; the trigger depends entirely on how the application implements its callback, and callbacks returning static credentials are not attacker-influenced. Version 4.9.0 addresses the defect by refusing such values with {error, {proxy_auth_error, invalid_header}}.

Know when Hackney gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (EEF) PRIMARY 2.1 LOW
CVSS:4.0/AV:L/AC:L/AT:P/PR:N/UI:N/VC:N/VI:L/VA:N/SC:N/SI:L/SA:N
vuln.today AI 3.7 LOW

Attacker-controlled proxy challenge data reaches an app-configured callback (AV:N) only under a non-default proxy_auth_fun deriving from untrusted input (AC:H); impact is request-splitting integrity only, so I:L and C/A:N.

3.1 AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N
4.0 AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:L/VA:N/SC:N/SI:L/SA:N

Primary rating from Vendor (EEF).

CVSS VectorVendor: EEF

Attack Vector
Local
Attack Complexity
Low
Attack Requirements
Present
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
Low
Vulnerable system: Availability
None
Subsequent system: Confidentiality
None
Subsequent system: Integrity
Low
Subsequent system: Availability
None

DescriptionCVE.org

Improper Neutralization of CRLF Sequences in HTTP Headers ('HTTP Request/Response Splitting') vulnerability in hackney_http_connect in benoitc hackney allows HTTP Request Splitting via the value a proxy_auth_fun callback returns. After a 407 response from an HTTP CONNECT proxy, hackney_http_connect:handle_proxy_auth/11 calls the caller's proxy_auth_fun with the status code and the response headers and writes the returned binary into the Proxy-Authorization line of the CONNECT retry without checking it. A CR, LF or NUL byte in that value adds header lines to the request sent to the proxy.

The value is attacker-influenced when the callback derives it from untrusted data, for example from the proxy's challenge headers. Other caller-supplied values on the CONNECT path, such as the target host and the request headers, were already checked for control bytes.

This issue affects hackney: from 2.0.0 before 4.9.0.

Threat Intelligence Overview

EPSS Score
0.2%
Top 92% exploitable
Prevalence
Medium
most popular Erlang/Elixir HTTP client, but ecosystem-specific deployment footprint
Social Media
1
Sightings
Data Quality
5 sources
Confidence: Medium

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity LOW
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
LOW severity (CVSS 0.1-3.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Defer
Exploitation
None
System Exposure· derived
Small
Automatable
No
Human Impact· derived
Low
Technical Impact
Partial

Priority Score

10
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +10
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

CVE-2026-47073 HIGH POC
8.7 May 25

Denial of service in benoitc hackney (Erlang HTTP client) versions 2.0.0 through 4.0.0 allows a malicious WebSocket serv

CVE-2026-47067 HIGH POC
8.7 May 25

Denial of service in benoitc hackney (Erlang HTTP client) 2.0.0 through 4.0.0 allows remote unauthenticated attackers to

CVE-2026-47066 HIGH POC
8.7 May 25

Denial-of-service in benoitc's hackney Erlang HTTP client (versions 2.0.0-beta.1 through 4.0.0) allows any HTTP origin s

CVE-2026-47077 HIGH POC
8.2 May 25

Remote denial of service in benoitc hackney 2.0.0 through 4.0.0 lets a malicious HTTP/3 server exhaust a client's BEAM p

CVE-2026-47071 HIGH POC
8.2 May 25

Denial of service in benoitc hackney (Erlang HTTP client) versions 0.10.0 through 4.0.0 lets a hostile SOCKS5 or HTTP CO

CVE-2026-47072 MEDIUM POC
6.9 May 25

CRLF injection in hackney (Erlang HTTP client, versions 2.0.0-4.0.1) enables header injection into outbound WebSocket up

CVE-2026-47076 MEDIUM POC
6.9 May 25

SSRF allowlist bypass in hackney (Erlang HTTP client) versions 0.13.0 through before 4.0.1 allows attackers who control

CVE-2026-47075 MEDIUM POC
6.8 May 25

HTTP Request Splitting via CRLF injection in hackney, the Erlang/Elixir HTTP client library, allows an attacker who cont

CVE-2026-47070 MEDIUM POC
6.0 May 25

Credential leakage in the hackney Erlang HTTP client library (versions 3.1.1 through before 4.0.1) allows a malicious or

CVE-2026-115693 CRITICAL
9.1 Oct 26

Improper certificate validation in the Erlang HTTP client hackney (1.24.0 through 4.8.x) lets an on-path attacker impers

CVE-2026-97200 HIGH
8.2 Oct 26

Memory exhaustion in the Erlang hackney HTTP client (2.0.0-beta.1 through 4.8.x) lets any server the client requests for

CVE-2026-115700 MEDIUM
6.9 Oct 26

Server-side request forgery in the Erlang hackney HTTP client (versions 4.0.1 up to but not including 4.9.0) lets an att

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy