Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessIdentify Plack app using vulnerable middleware
-
DeliveryCraft GET request with raw CRLF in path
-
ExploitBypass middleware injection filter
-
ExecutionProxy/server processes smuggled headers
-
ImpactAchieve header injection or request smuggling
Vulnerability Assessment
| Weakness |
CWE
|
| Exploitation Conditions | Exploitation requires that the target Perl web application uses Plack::Middleware::Security::Common (any version below 0.13.1) and relies on its header-injection rule as a security boundary; the attacker sends a request path containing raw or single-encoded CRLF (\r\n / %0D%0A) rather than double-encoded sequences. Realized impact further depends on the deployment stack - specifically how the fronting reverse proxy normalizes or forwards CRLF in paths and how the underlying Plack server (e.g., Starman, Gazelle, Twiggy) parses the smuggled bytes - which the CVE description explicitly flags as uncertain. No authentication or user interaction is needed (PR:N/UI:N), but applications that do not deploy this middleware, or that already strip CRLF at the proxy, are not exposed. |
| Impact | The CVSS vector AV:N/AC:L/PR:N/UI:N rates this as remotely exploitable with no authentication, but the C:L/I:L/A:L impact reflects partial - not full - compromise, yielding the 7.3 score. EPSS at 0.03% (9th percentile) and the absence of KEV listing or known public exploit point to low real-world targeting pressure, and the CVE description itself notes uncertainty about whether downstream reverse proxies or Plack servers actually act on the injected headers - so the practical impact is conditional on the deployment stack. This is best treated as a defense-in-depth control failure (a security middleware that did not enforce as advertised) rather than a critical RCE-class issue; prioritize patching but it is not an emergency for most defenders. |
| Exploit ScenarioDerived | An attacker sends a crafted HTTP request such as GET /path\r\nHTTP/1.1\r\nHost: secret.example.com to a Plack-based application protected by Plack::Middleware::Security::Common, expecting the middleware to block it. Because the injection filter only catches double-encoded CRLF, the request passes through, and depending on how the front-end proxy and Plack handler interpret the embedded CRLF the attacker may achieve request smuggling, cache poisoning, or routing to an unintended Host. No public exploit is identified at time of analysis. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Jun 01, 2026
Header injection filtering bypass in Plack::Middleware::Security::Common (Perl) versions prior to 0.13.1 allows remote attackers to smuggle CRLF sequences and additional headers through request paths that are not double-encoded. The flaw weakens a security middleware specifically designed to prevent header injection, and while EPSS sits at 0.03% (9th percentile) with no public exploit identified at time of analysis, downstream impact depends on how reverse proxies and Plack-based servers handle the unblocked CRLF payloads.
RemediationAI
Vendor-released patch: upgrade Plack::Middleware::Security::Common to version 0.13.1 or later from CPAN (see https://metacpan.org/release/RRWO/Plack-Middleware-Security-Simple-v0.13.1/changes); a typical install via cpanm Plack::Middleware::Security::Common@0.13.1 followed by application restart is sufficient. As a compensating control until upgrade, configure the upstream reverse proxy (nginx, Apache, HAProxy) to reject request paths containing raw CRLF or %0D%0A sequences - note this may break clients that legitimately send unusual but valid percent-encoded paths. Additionally, audit the broader Plack stack for any logic that trusts the unsanitized PATH_INFO/REQUEST_URI, since the middleware was previously assumed to block such payloads.
Affected VersionsENISA
Affected Packages
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
Plack is the Perl PSGI (Perl Server Gateway Interface) toolkit, and Plack::Middleware::Security::Common is a CPAN module by RRWO providing a collection of security middlewares for Plack-based web applications. The root cause is CWE-790 (Improper Filtering of Special Elements), where the middleware's header-injection rule only matched double-encoded CRLF (%250D%250A) patterns rather than raw or single-encoded CRLF (\r\n) in the request path. The affected component is identified by CPE cpe:2.3:a:rrwo:plack::middleware::security::common and the flaw resides in the regex/decoding logic intended to neutralize HTTP header smuggling and response-splitting payloads before they reach the upstream application.
Know when Plack 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
AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L
Primary rating from Vendor (CPANSec) · only source for this CVE.
CVSS VectorVendor: CPANSec
Lifecycle Timeline
3DescriptionCVE.org
Plack::Middleware::Security::Common versions before 0.13.1 for Perl did not block header injections in request paths.
The header injection rule was ineffective at blocking header injections in the request paths unless they were double-encoded, for example,
GET /path\r\nHTTP/1.1\r\nHost: secret.example.com
Note that it is unclear whether request paths with CRLF followed by additional headers would be blocked by reverse proxies, or how they would be processed by Plack-based servers.
Executive ViewAI
Plack::Middleware::Security::Common, a critical Perl web application security control, contains a header injection bypass in versions before 0.13.1 that defeats its intended protective function. Organizations running affected Perl applications face elevated risk from HTTP header injection attacks that could enable response manipulation or cache poisoning, depending on downstream infrastructure. Immediate upgrade to version 0.13.1 is required to restore this essential security layer.
Apply vendor patch: version 0.13.1 or later.
Threat Intelligence Overview
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.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Code injection occurs when an application accepts user input and passes it directly into a language interpreter or evaluator without proper sanitization.
Insecure session ID generation in Plack::Middleware::Session::Simple before 0.05 for Perl. Patch available.
Plack::Middleware::Session::Cookie versions through 0.21 for Perl allows remote code execution. Rated critical severity
Plack::Middleware::XSendfile through version 1.0053 allows remote unauthenticated attackers to read arbitrary files from
Plack::Middleware::Statsd versions before 0.9.0 leak user IP addresses to unsecured statsd daemons via unencrypted UDP c
Plack::App::File in Plack before 1.0031 removes trailing slash characters from paths, which allows remote attackers to b
EUVD-2026-32892
GHSA-xcq6-chp9-g954
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB