CVE-2026-47075
Analyzed Analyzed - Analysis Complete
Improper CRLF Injection in hackney HTTP Client

Publication date: 2026-05-25

Last updated on: 2026-05-28

Assigner: EEF

Description
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 defined in RFC 3986 Section 3.4 must be percent-encoded, but hackney_url:make_url/3 passes the query binary directly without validation or escaping. An attacker who can control all or part of a URL passed to hackney can inject raw CRLF sequences into the query string, which are then sent as HTTP line breaks in the request target. This enables injection of arbitrary HTTP headers or splitting of the HTTP request. This issue affects hackney: from 0 before 4.0.1.
CVSS Scores
EPSS Scores
Probability:
Percentile:
Meta Information
Published
2026-05-25
Last Modified
2026-05-28
Generated
2026-06-15
AI Q&A
2026-05-26
EPSS Evaluated
2026-06-14
NVD
EUVD
Affected Vendors & Products
Showing 1 associated CPE
Vendor Product Version / Range
benoitc hackney to 4.0.1 (exc)
Helpful Resources
Exploitability
CWE
CWE Icon
KEV
KEV Icon
CWE ID Description
CWE-93 The product uses CRLF (carriage return line feeds) as a special element, e.g. to separate lines or records, but it does not neutralize or incorrectly neutralizes CRLF sequences from inputs.
Attack-Flow Graph
AI Quick Actions
Instant insights powered by AI
Executive Summary

This vulnerability is an Improper Neutralization of CRLF Sequences issue in the benoitc hackney library. It allows HTTP Request Splitting because 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.

Specifically, hackney_url:make_url/3 passes the query string directly without validating or escaping these characters, which should be percent-encoded according to RFC 3986 Section 3.4. An attacker who can control part or all of a URL passed to hackney can inject raw CRLF sequences into the query string, causing the HTTP request to be split or arbitrary HTTP headers to be injected.

Impact Analysis

This vulnerability can impact you by allowing an attacker to perform HTTP Request Splitting attacks. This means the attacker can inject arbitrary HTTP headers or split the HTTP request, potentially leading to security issues such as cache poisoning, cross-site scripting (XSS), session fixation, or other malicious behaviors depending on how the HTTP requests are processed downstream.

Compliance Impact

The vulnerability allows an attacker to inject arbitrary HTTP headers or split HTTP requests by exploiting improper neutralization of CRLF sequences in URLs processed by hackney. This can lead to unauthorized actions or data exposure.

Such unauthorized data exposure or manipulation of HTTP requests can potentially violate data protection and privacy regulations like GDPR or HIPAA, which require safeguarding personal and sensitive information against unauthorized access or disclosure.

Therefore, systems using vulnerable versions of hackney that process untrusted URLs may face compliance risks if this vulnerability is exploited, as it undermines the integrity and confidentiality of HTTP communications.

Detection Guidance

This vulnerability involves injection of raw carriage return (\r) and line feed (\n) characters in HTTP request query strings, leading to HTTP request splitting or header injection.

To detect exploitation attempts on your network or system, you can monitor HTTP requests for suspicious patterns such as unencoded CR or LF characters in URLs or unusual HTTP header injections.

  • Use network packet capture tools like tcpdump or Wireshark to filter HTTP requests containing %0d or %0a sequences or raw CR/LF characters in the query string.
  • Example tcpdump command to capture HTTP requests with suspicious characters: tcpdump -A -s 0 'tcp port 80 and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)' | grep -iE '%0d|%0a|\r|\n'
  • Inspect web server logs or application logs for malformed or split HTTP requests, or unexpected additional headers injected into requests.
  • If you have access to the hackney client source or logs, check for error responses indicating invalid request targets, as the patched version rejects requests containing CR, LF, or NUL bytes.
Mitigation Strategies

The primary mitigation is to upgrade the hackney library to version 4.0.1 or later, where this vulnerability has been fixed.

The fix includes validation that rejects any request targets containing raw carriage return, line feed, or NUL bytes before sending data over the network.

  • Update your dependencies to hackney version 4.0.1 or newer.
  • If immediate upgrade is not possible, implement input validation or sanitization on URLs passed to hackney to ensure CR and LF characters are percent-encoded.
  • Monitor your systems for suspicious HTTP requests that may indicate exploitation attempts.
  • Review and apply any patches or security advisories related to this vulnerability from the hackney project.
Chat Assistant
Ask questions about this CVE
Hi! I’m here to help you understand CVE-2026-47075. Ask me anything about the vulnerability, its impact, or mitigation strategies.
0/70
EPSS Chart