Skip to main content

Perl EUVDEUVD-2026-58110

| CVE-2026-19487 MEDIUM
Always-Incorrect Control Flow Implementation (CWE-670)
2026-08-13 CPANSec GHSA-cg68-cm33-8vqv
5.3
CVSS 3.1 · Vendor: CPANSec
Share

Severity by source

Vendor (CPANSec) PRIMARY
5.3 MEDIUM
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L
vuln.today AI
6.5 MEDIUM

Network-reachable with no auth; I:L added because incorrect regex results can directly bypass security filter logic per the description.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:L
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:L/VA:L/SC:N/SI:N/SA:N
SUSE
MEDIUM
qualitative
Red Hat
6.5 MEDIUM
qualitative

Primary rating from Vendor (CPANSec).

CVSS VectorVendor: CPANSec

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

Lifecycle Timeline

5
Source Code Evidence Fetched
Aug 13, 2026 - 18:46 vuln.today
Analysis Generated
Aug 13, 2026 - 18:46 vuln.today
CVSS changed
Aug 13, 2026 - 18:22 NVD
5.3 (MEDIUM)
CVE Published
Aug 13, 2026 - 15:51 cve.org
UNKNOWN (no severity yet)
CVE Published
Aug 13, 2026 - 15:51 cve.org
MEDIUM 5.3

DescriptionCVE.org

Perl versions from 5.9.4 before 5.41.9 produce incorrect regular expression match results when a stale failure flag ends the Aho-Corasick prescan early in S_find_byclass.

The prescan walks the subject for positions where the full pattern could match, and the engine tries it from the leftmost one recorded. A failing transition sets the failed flag, and a later successful transition does not clear it, so the prescan reads the stale flag as a failure and stops before it can record a candidate that starts earlier. It takes a subject where one candidate is recorded and a later character then forces a fallback through a fail link that succeeds.

Example:

"ABCDE" =~ m/ABCF|BCDE|C/;

matches C at offset 2, not BCDE

"ABCDE" =~ m/ABCF|BCDE|C(G)/;

no match, BCDE missed

An alternation like this can miss input it should match, or match it on the wrong branch, so an access or filtering decision made from the result can be wrong.

AnalysisAI

Incorrect regex match results in Perl 5.9.4 through 5.41.8 allow remote unauthenticated attackers to bypass security filters or access controls that depend on regex alternation patterns. The Aho-Corasick prescan in S_find_byclass carries a stale failure flag that causes it to terminate before recording an earlier valid match candidate, so an alternation like /ABCF|BCDE|C/ against 'ABCDE' may match the wrong branch or return no match at all. Although the official CVSS scores only Availability:Low, the description explicitly states that 'an access or filtering decision made from the result can be wrong,' indicating real Integrity impact not captured in the vendor-assigned vector. No public exploit identified at time of analysis and no CISA KEV listing.

Technical ContextAI

Perl's regex engine accelerates multi-alternation pattern matching through an Aho-Corasick prescan phase implemented in the function S_find_byclass within regexec.c. The algorithm walks the subject string looking for positions where the full pattern could plausibly match before handing candidates to the full NFA engine. A failing state transition sets a boolean 'failed' flag; the defect (CWE-670: Always-Incorrect Control Flow Implementation) is that a subsequent successful transition never resets this flag to zero. The stale 'true' value causes the prescan to interpret the successful position as a failure and stop recording candidates prematurely - the engine then tries the match from whatever incomplete candidate set was built, potentially selecting the wrong alternation branch or reporting no match. The entire fix is a single inserted line 'failed = 0;' in the successful-transition path. Affected versions span Perl 5.9.4 through all releases before 5.41.9, covering roughly 17 years of stable and development releases. The issue is tracked publicly as perl5 GitHub issue #22892.

Affected ProductsAI

Perl interpreter versions 5.9.4 through 5.41.8 (all releases before 5.41.9) are affected across all platforms. No CPE strings were provided in the intelligence data; affected software is the core perl5 interpreter distributed by The Perl Foundation and available via CPAN, Linux distribution packages, and vendor-bundled Perl installations. The vulnerability is tracked at https://github.com/Perl/perl5/issues/22892 and the upstream fix commit is at https://github.com/Perl/perl5/commit/1a21abacaf6f684928bae8baaa153733c8c238eb.

RemediationAI

Upgrade to Perl 5.41.9 or later, which contains the one-line fix resetting the 'failed' flag on successful Aho-Corasick transitions. The upstream patch is available at https://github.com/Perl/perl5/commit/1a21abacaf6f684928bae8baaa153733c8c238eb.patch and can be applied manually to earlier releases if a distribution update is unavailable. Note that 5.41.x is a development branch; production environments should monitor their distribution's stable release channel (5.40.x, 5.38.x) for a backported fix before upgrading to a development release. As a compensating control, any security-critical regex that uses alternation patterns should be restructured into multiple sequential non-alternating patterns evaluated independently, eliminating Aho-Corasick prescan activation; this has a maintainability cost and requires regex audit across the codebase. Alternatively, critical filtering logic should be validated with a secondary check independent of Perl regex results. The fix version 5.41.9 is inferred from the CVE description; a formally tagged release has not been independently confirmed beyond the referenced commit.

Vendor StatusVendor

SUSE

Severity: Moderate
Product Status
SLES15-SP5-CHOST-BYOS-SAP-CCloud Affected
SLES15-SP6-CHOST-BYOS Affected
SLES15-SP6-CHOST-BYOS-Aliyun Affected
SLES15-SP6-CHOST-BYOS-Azure Affected
SLES15-SP6-CHOST-BYOS-EC2 Affected

Share

EUVD-2026-58110 vulnerability details – vuln.today

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