Skip to main content

HTTP::Tiny CVE-2026-7010

| EUVDEUVD-2026-29344 MEDIUM
HTTP Response Splitting (CWE-113)
2026-05-11 CPANSec GHSA-x3qr-8f53-fg74
6.5
CVSS 3.1 · NVD
View

Attack ChainAIDerived

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

  1. Access
    Attacker controls user-supplied URL
  2. Delivery
    Application passes URL to HTTP::Tiny
  3. Exploit
    CRLF characters in URL bypass validation
  4. Execution
    Malicious headers injected into HTTP request
  5. Persist
    Request smuggling or header injection on upstream server
  6. Impact
    Information disclosure or request forgery

Vulnerability Assessment

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

The vulnerability requires an application to pass attacker-controlled input (a user-supplied URL string or header field value) directly to HTTP::Tiny methods such as get(), post(), or request(). The unvalidated inputs are: (1) the HTTP method (if the application allows caller to specify a method), (2) the URI/URL (if provided by user input), and (3) the Host header (derived from the URL host). Default configurations of HTTP::Tiny are vulnerable; no special feature enablement is required. The attack surface is limited to code paths where untrusted user input influences HTTP requests. Applications that only fetch hardcoded URLs or validate input against a whitelist of allowed hosts are not vulnerable. Exploitation does not require authentication or special user privileges; the attacker simply needs the ability to supply a URL to the vulnerable endpoint.

Impact

CVSS 6.5 (Medium, AV:N/AC:L/PR:N/UI:N/S:U) indicates network-accessible, unauthenticated exploitation without user interaction, but with limited impact (C:L/I:L/A:N - partial confidentiality and integrity loss, no availability impact). However, EPSS 0.03% (percentile 7%) is extremely low, suggesting minimal real-world exploitation probability. This discrepancy is explained by the specific exploitation prerequisites: the attacker must control the input URL or header values, which requires deployment in a context where untrusted user input feeds directly into HTTP::Tiny calls (e.g., a webhook receiver or URL fetch endpoint). The SSVC framework would classify this as: exploitation=Proof-of-Concept (fix is committed, not yet in stable release), automatable=Yes (CRLF injection is straightforward), technical_impact=Partial (header injection enables request smuggling but does not directly compromise confidentiality of sensitive data at the HTTP::Tiny level - impact depends on upstream server behavior). The low EPSS despite Medium CVSS is justified: while technically exploitable, the narrow attack surface (requires controlled input) and indirect impact (depends on upstream server mishandling smuggled requests) limit real-world risk. Organizations using HTTP::Tiny for internal, controlled requests face minimal risk; those exposing URL-fetch or webhook endpoints to untrusted input should prioritize patching.

Exploit ScenarioDerived

An attacker discovers a web service with a URL-fetch endpoint that accepts user-supplied URLs and fetches them using HTTP::Tiny (e.g., a URL preview service or webhook receiver). The attacker crafts a URL like http://attacker.com:8080/path%0d%0aX-Injected: header%0d%0a%0d%0a or supplies a method containing CRLF. When the application calls HTTP::Tiny with this URL, the CRLF characters inject an additional header into the HTTP request to the upstream server. If the upstream server processes multiple requests when smuggling occurs, the attacker can leak information or alter processing logic. No public exploit code is currently identified, but the vulnerability is straightforward to demonstrate with manual HTTP request crafting.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.0% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – May 12, 2026

HTTP::Tiny versions before 0.093 for Perl fail to validate carriage return and line feed (CRLF) characters in HTTP request lines and header values, allowing attackers who control input URLs or headers to inject additional HTTP headers and smuggle requests to upstream servers. Remote unauthenticated attackers can exploit this via crafted URLs passed to webhook or URL fetch endpoints, achieving limited information disclosure and integrity compromise. EPSS score of 0.03% (percentile 7%) indicates low practical exploitation probability despite network-vector accessibility.

RemediationAI

Upgrade HTTP::Tiny to version 0.093 or later. Install via CPAN: cpan HTTP::Tiny or cpanm HTTP::Tiny. For systems using Perl distributions, upgrade via the package manager (e.g., apt-get install libhttp-tiny-perl, yum install perl-HTTP-Tiny). The patch is available in the upstream repository at https://github.com/Perl-Toolchain-Gang/HTTP-Tiny/commit/d73c7651e82ace02693842df55928b6c3ae7c38d.patch. As a compensating control prior to patching, sanitize all untrusted URL and header inputs by rejecting any strings containing carriage returns (\x0D), line feeds (\x0A), or null bytes (\x00); alternatively, validate that method and URI components conform to RFC 3986 for URIs and RFC 9110 for HTTP methods (alphanumeric only for methods). However, sanitization at the application layer is less reliable than upgrading the library, so patch deployment is strongly preferred. Applications should audit codebase for instances where HTTP::Tiny processes user-supplied URLs and prioritize those for testing after patching.

Affected VersionsENISA

HTTP::Tiny 0 <0.093

Affected Packages

euvd http_tiny fix: 0.093

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

HTTP::Tiny is a lightweight Perl HTTP client library used in build toolchains and web applications for making HTTP requests. The vulnerability exists in the request header construction logic, specifically in the write_request_header() and write_header_lines() subroutines. The library accepts method, URI, and Host header values without sanitizing for CRLF sequences (\x0D\x0A / \r\n). An attacker who injects a CRLF into the URI or method name can terminate the current header line and inject arbitrary additional headers or even entire new HTTP requests before the request reaches the upstream server. This is fundamentally a CWE-113 (Improper Neutralization of CRLF Sequences in HTTP Headers) issue. The fix (commit d73c7651e82ace02693842df55928b6c3ae7c38d) adds validation using a $Field_Content regex pattern and explicit character class checks to reject any byte in the range \x00-\x20 (control characters and space) and \x7F (DEL) in the method and request-URI, effectively preventing CRLF injection.

Know when Http 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

NVD PRIMARY 6.5 MEDIUM
AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N
SUSE MEDIUM

Primary rating from NVD.

CVSS VectorNVD

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
Low
Integrity
Low
Availability
None

Lifecycle Timeline

3
CVSS changed
May 12, 2026 - 15:22 NVD
6.5 (MEDIUM)
CVE Published
May 11, 2026 - 21:14 nvd
UNKNOWN (no severity yet)
CVE Published
May 11, 2026 - 21:14 nvd
MEDIUM 6.5

DescriptionCVE.org

HTTP::Tiny versions before 0.093 for Perl do not validate CRLF in HTTP request lines or control field header values.

The unvalidated inputs are the method and URI in the request line, the URL host that becomes the Host: header, and HTTP/1.1 control data field values.

An attacker who controls one of these inputs, for example a user supplied URL passed to a webhook or URL fetch endpoint, can inject additional headers and smuggle requests to the upstream server.

Threat Intelligence Overview

EPSS Score
0.0%
Top 93% exploitable
Data Quality
6 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment Vendor GitHub VulDB

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 MEDIUM
CISA KEV No
Public POC No
EPSS 0.0%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.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
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
Yes
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

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

Attack Technique

Code Injection CRITICAL

Code injection occurs when an application accepts user input and passes it directly into a language interpreter or evaluator without proper sanitization.

More in Http

View all
CVE-2023-44487 HIGH POC
7.5 Oct 10

Denial of service against HTTP/2 server implementations allows remote unauthenticated attackers to exhaust server resour

CVE-2026-84997 HIGH POC
7.5 Sep 16

Remote, unauthenticated denial of service affects react/http versions 0.6.0 through 1.11.0, where a malformed Transfer-E

CVE-2020-25574 HIGH POC
7.5 Sep 14

An issue was discovered in the http crate before 0.1.20 for Rust. Rated high severity (CVSS 7.5), this vulnerability is

CVE-2022-31081 MEDIUM POC
6.5 Jun 27

HTTP::Daemon is a simple http server class written in perl. Rated medium severity (CVSS 6.5), this vulnerability is remo

CVE-2020-35669 MEDIUM POC
6.1 Dec 24

An issue was discovered in the http package through 0.12.2 for Dart. Rated medium severity (CVSS 6.1), this vulnerabilit

CVE-2026-3256 CRITICAL
9.8 Mar 28

HTTP::Session versions through 0.53 for Perl defaults to using insecurely generated session ids.

CVE-2023-31486 HIGH
8.1 Apr 29

HTTP::Tiny before 0.083, a Perl core module since 5.13.9 and available standalone on CPAN, has an insecure default TLS c

CVE-2026-104827 HIGH
7.5 Oct 15

Unbounded response-header buffering in ReactPHP's HTTP client (react/http) versions 1.0.0 through 1.11.0 allows a malici

CVE-2026-7017 HIGH
7.1 Jul 07

Credential leakage in the Perl HTTP::Tiny client (all versions before 0.095) lets an attacker who controls a redirect de

CVE-2018-25160 MEDIUM
6.5 Feb 27

HTTP::Session2 versions through 1.09 for Perl does not validate the format of user provided session ids, enabling code i

CVE-2026-3255 MEDIUM
6.5 Feb 27

HTTP::Session2 before version 1.12 for Perl generates predictable session identifiers on Windows systems when /dev/urand

CVE-2023-26044 MEDIUM
5.3 May 17

react/http is an event-driven, streaming HTTP client and server implementation for ReactPHP. Rated medium severity (CVSS

Vendor StatusVendor

SUSE

Severity: Medium

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