Skip to main content

Text::LineFold EUVDEUVD-2026-33466

| CVE-2026-8594 MEDIUM
Asymmetric Resource Consumption (Amplification) (CWE-405)
2026-05-30 CPANSec GHSA-xfcf-wwr2-w555
6.2
CVSS 3.1 · Vendor: CPANSec
View

Attack ChainAIDerived

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

  1. Recon
    Supply input string with many Unicode VT/FF break chars
  2. Delivery
    Pass string to application using Text::LineFold fold()
  3. Exploit
    fold() splits into N segments
  4. Install
    break() called with full $str per segment
  5. C2
    Output buffer grows N×M
  6. Execute
    Memory/CPU exhaustion
  7. Impact
    Denial 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.

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 – 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

Text::LineFold 0 ≤2019.001

Affected Packages

euvd text_linefold no fix

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

Vendor (CPANSec) PRIMARY 6.2 MEDIUM
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

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

Lifecycle Timeline

2
CVSS changed
Jun 01, 2026 - 17:22 NVD
6.2 (MEDIUM)
CVE Published
May 30, 2026 - 15:32 nvd
UNKNOWN (no severity yet)

DescriptionCVE.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

EPSS Score
0.0%
Top 100% exploitable
Social Media
2
Sightings
Data Quality
7 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment CIRCL 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
Defer
Exploitation
None
System Exposure· derived
Small
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

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

Attack Technique

Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.

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