CVE-2026-19487: 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
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 Sfindbyclass.
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.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade to a fixed release to a version that resolves this vulnerability.
Fixed in 5.42.0Patch upstream patch
Event History
Frequently Asked Questions
What is the severity of CVE-2026-19487?
The severity of CVE-2026-19487 is rated as 37.
How do I fix CVE-2026-19487?
To fix CVE-2026-19487, update your Perl version to 5.41.9 or later.
What versions of Perl are affected by CVE-2026-19487?
CVE-2026-19487 affects Perl versions from 5.9.4 up to, but not including, 5.41.9.
What type of vulnerability is CVE-2026-19487?
CVE-2026-19487 is a software vulnerability related to incorrect regular expression match results in specific versions of Perl.
When was CVE-2026-19487 published?
CVE-2026-19487 was published on August 13, 2026.