Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
ReconSupply input string with many Unicode VT/FF break chars
-
DeliveryPass string to application using Text::LineFold fold()
-
Exploitfold() splits into N segments
-
Installbreak() called with full $str per segment
-
C2Output buffer grows N×M
-
ExecuteMemory/CPU exhaustion
-
ImpactDenial of service
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V2 - Validation and Business Logic Asymmetric resource consumption control
|
| Exploitation Conditions | Exploitation requires that Text::LineFold's fold() method be called with attacker-controlled input containing multiple Unicode special line break characters (VT U+000B, FF U+000C, or other Unicode-defined line terminators). The amplification severity scales with the density of these characters in the input, so a meaningful DoS requires the ability to inject a non-trivial number of such characters. CVSS AV:L indicates the attack vector is local, meaning exploitation is limited to contexts where the attacker can supply crafted strings to a process running Text::LineFold on the same system, or to applications (web services, daemons) that accept and forward such input without sanitization. Exploitation is limited by: (1) the local attack vector constraint - pure remote unauthenticated exploitation via network is not confirmed by CVSS; (2) applications that normalize or strip Unicode control characters before calling fold(); (3) input length limits enforced upstream of fold(); (4) no impact on confidentiality or integrity - only availability is affected. |
| Impact | CVSS 6.2 with vector AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H rates this as a local, low-complexity, availability-only issue - the local attack vector (AV:L) substantially constrains the threat surface compared to a network-exploitable DoS. EPSS at 0.01% in the 0th percentile reflects essentially zero observed exploitation probability in the wild. The vulnerability is absent from CISA KEV and no public exploit code has been identified. These signals collectively indicate this is a correctness bug with DoS potential rather than an actively targeted vulnerability. Real-world risk is highest in applications that (a) run as a service accepting untrusted text, (b) pass that text through Text::LineFold's fold() without input sanitization, and (c) operate in resource-constrained environments. The amplification factor is bounded by the number of Unicode break characters an attacker can inject, making targeted crafting necessary for meaningful impact. The CVSS PR:N rating means no authentication is required, but the AV:L constraint means the attacker must be able to reach a local process or provide input that flows into fold() - remote exploitation is not confirmed by the available data. |
| Exploit ScenarioDerived | An attacker submits a crafted text string densely populated with Unicode vertical tab (VT) or form feed (FF) characters to a Perl application - such as a text formatter, email composer, or report generator - that calls Text::LineFold's fold() method on user-supplied content. Each special break character causes an additional full-string duplication in the output buffer, causing memory and CPU consumption to grow proportionally; a moderately sized input with hundreds of break characters could generate output tens or hundreds of times larger, eventually exhausting process memory or triggering an out-of-memory condition. No public exploit code has been 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
Resource amplification in Text::LineFold (Unicode-LineBreak Perl distribution, versions through 2019.001) causes output to be duplicated proportionally to the number of Unicode special line break characters present in the input string. The fold() method incorrectly passes the entire input string to the break() function on each segment iteration, rather than passing only the current segment, producing amplified output that grows with each VT, FF, or similar line break character encountered. No public exploit has been identified at time of analysis and EPSS sits at the 0th percentile, but any application accepting untrusted input and passing it through fold() is exposed to potential denial of service.
RemediationAI
Apply the CPANSec-provided patch available at https://security.metacpan.org/patches/U/Unicode-LineBreak/2019.001/CVE-2026-8594-r1.patch, which corrects the fold() function to pass the current segment variable $s rather than the full input $str to break(). The upstream code fix is tracked in GitHub PR #6 at https://github.com/hatukanezumi/Unicode-LineBreak/pull/6; a released patched version of the Unicode-LineBreak CPAN distribution has not been independently confirmed from the available data - monitor CPAN for a new release from NEZUMI. As an interim compensating control, applications that pass untrusted input to Text::LineFold's fold() should strip or limit Unicode special line break characters (VT U+000B, FF U+000C, LS U+2028, PS U+2029, and NEL U+0085) before invoking fold(); note that this may alter the formatting of legitimately structured text. Additionally, enforcing a maximum input length before calling fold() limits the worst-case memory amplification at the cost of truncating long inputs.
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
Text::LineFold is a Perl module distributed as part of the Unicode-LineBreak package (author NEZUMI on CPAN, CPE: cpe:2.3:a:nezumi:text::linefold:*:*:*:*:*:*:*:*). Its fold() method implements Unicode line-breaking by splitting an input string into segments wherever special break characters appear (VT U+000B, FF U+000C, and others defined by Unicode line-breaking rules), then calling the internal break() function to reflow each segment. The defect, present at lines 407-415 of lib/Text/LineFold.pm, is that each iteration passes the full original string variable $str to break() instead of the current segment variable $s. This is a textbook CWE-405 (Asymmetric Resource Consumption - Amplification) flaw: the output length scales as O(N×M) where N is segment count and M is input length. The patch confirmed in GitHub PR #6 is a single-character correction: replacing $self->break($str) with $self->break($s).
Know when Text 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:L/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Primary rating from Vendor (CPANSec) · only source for this CVE.
CVSS VectorVendor: CPANSec
Lifecycle Timeline
2DescriptionCVE.org
Text::LineFold versions through 2019.001 for Perl duplicate the output based on the number of special break characters.
Text::LineFold splits the input string by specific line break characters (such as VT, FF and others) into segments, but applies the break function to the entire string, not just the segment.
A side effect of this is that the full input can be duplicated for each segment. Besides being incorrect, this can lead to unexpected resource consumption and possible denial of service.
Note that Text::LineFold is part of the Unicode-LineBreak distribution, which may have a higher version number than the module.
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
Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.
Memory corruption in the Text::CSV_XS Perl module (all versions before 1.62) occurs when application-registered callback
Vulnerability in the Oracle Text component of Oracle Database Server. Rated high severity (CVSS 8.2), this vulnerability
Vulnerability in the Oracle Text component of Oracle Database Server. Rated high severity (CVSS 8.1), this vulnerability
Denial of service in the Perl module Text::Minify::XS (v0.3.0 up to but excluding v0.7.8) arises because its minify func
An attacker may cause a denial of service by crafting an Accept-Language header which ParseAcceptLanguage will take sign
The x/text package before 0.3.3 for Go has a vulnerability in encoding/unicode that could lead to the UTF-16 decoder ent
Vulnerability in the Oracle Text component of Oracle Database Server. Rated high severity (CVSS 7.2), this vulnerability
Vulnerability in the Oracle Text component of Oracle Database Server. Rated low severity (CVSS 3.1), this vulnerability
EUVD-2026-33466
GHSA-xfcf-wwr2-w555
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB