CVE-2026-86145
High · 8.2CVSS
8.2
EPSS
0.4%
Published
Sep 5, 2026
CISA due date
—
Cloudanix analysis
A common text-matching library can write outside its allotted memory when handling certain complex patterns, which can crash software or let someone tamper with it.
- Exploitation
- Remote Unauthenticated
- Attacker needs
- None
- Complexity
- Low
- Impact
- Data Tampering
- Component
- Library
- Class
- Buffer Overflow
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
PCRE2 versions before 10.48 contain an out-of-bounds heap write in pcre2_dfa_match. When recursive DFA matching reuses a cached workspace block, the library omits the size check that a newly allocated block would receive, so a too-small reused buffer can be written past its bounds. The result is heap memory corruption. Confidentiality is not directly affected; integrity of process memory can be broken and the process can become unstable or crash. Trigger conditions are an attacker-controlled regular expression, or a recursive pattern combined with a small heap limit set through the PCRE2 API.
Why it matters to the business
Software that uses PCRE2 for regular-expression matching—including many Linux distributions and applications that accept patterns or apply recursive DFA matching under tight memory limits—can be crashed or have in-memory state corrupted. That can mean service outages, failed input processing, or integrity failures in products that treat match results as trusted. The issue is rated high (CVSS 8.2) but is not on CISA KEV, has no reported in-the-wild exploitation, and a low, flat EPSS (~0.0039 over 30 days), so mass opportunistic exploitation is not indicated; residual risk is still material because PCRE2 is a foundational library. Patch within normal high-severity windows, faster where untrusted regular expressions are accepted. Red Hat pcre2-main is addressed by RHSA-2026:67534.
How an attack unfolds
An unauthenticated attacker needs a path that causes PCRE2’s DFA matcher to run on a recursive pattern while a previously cached workspace block is reused. That path is typically an application that compiles or executes attacker-supplied regular expressions, or that applies recursive patterns under an API-imposed small heap limit. The matcher reuses the cached workspace without confirming it is large enough, writes past the buffer, and corrupts adjacent heap metadata or application data. Outcomes range from a reliable denial of service (process crash or abort) to integrity impact on the hosting process. No named threat actors, ransomware use, or public exploit maturity are associated with this issue.
How to fix it
Upgrade PCRE2 to 10.48 or later, which adds the missing size check on reused recursive DFA workspace blocks. For Red Hat pcre2-main, apply RHSA-2026:67534 and install pcre2 10.48-0.1.hum1 (or a later vendor build that includes that fix). Rebuild or restart applications statically linked against older libpcre2 so they pick up the patched library. Until patched, do not accept untrusted regular expressions, avoid pcre2_dfa_match on recursive patterns, and do not combine DFA matching with an unusually small PCRE2 heap limit. Inventory direct and transitive PCRE2 usage (packages, containers, language bindings, and embedded copies).
How to confirm the fix worked
Confirm the installed PCRE2 is 10.48 or newer (for Red Hat pcre2-main, package 10.48-0.1.hum1 or later from RHSA-2026:67534). On RPM systems, verify the package NVR and that no older libpcre2-8.so remains loaded. For statically linked binaries, rebuild against 10.48+ and confirm the binary no longer contains the pre-10.48 pcre2_dfa_match workspace-reuse path. After upgrade, exercise recursive DFA matching and any application features that compile user-supplied patterns and confirm they no longer crash under previously failing conditions. Search images and SBOM/package inventories for PCRE2 < 10.48.
Typical attack path
- Locate a service or tool that links PCRE2 and either accepts untrusted regular expressions or performs recursive DFA matching with a constrained heap limit.
- Reach pcre2_dfa_match with a recursive pattern so a cached DFA workspace block is reused.
- Cause the reused workspace to be smaller than the write the matcher performs, producing an out-of-bounds heap write.
- Force a crash (availability impact) or corrupt adjacent heap state (integrity impact) in the hosting process.
- If the host process runs with elevated privileges or brokers sensitive operations, abuse the corrupted process state—this is not a demonstrated remote code-execution chain for this CVE.
How to detect it
There is no public exploit, named actor, or KEV activity to hunt for. Look for evidence of attempted abuse or of the bug being hit: unexpected crashes or coredumps in processes linked to libpcre2 whose stack includes pcre2_dfa_match; abort/segfault logs around regex-heavy services; and application logs showing compilation or execution of user-supplied or highly recursive patterns shortly before a crash. Review package and library load data for PCRE2 < 10.48 as exposure, not compromise. Network IOCs are not expected; this is an in-process memory-safety flaw. If a crash dump exists, inspect heap corruption near DFA workspace reuse rather than seeking a unique payload signature.
- pcre2_dfa_match
- libpcre2-8.so
- PCRE2 version strings below 10.48
- segfault/abort in processes linked to libpcre2 with recursive DFA matching
- package NVR pcre2 earlier than 10.48-0.1.hum1 on Red Hat pcre2-main
What your security team should do
- Patch PCRE2 to 10.48+ immediately on internet-facing or regex-accepting systems; apply RHSA-2026:67534 (pcre2 10.48-0.1.hum1) on Red Hat pcre2-main.
- Inventory all packages, containers, and statically linked binaries that ship libpcre2 and schedule rebuilds where a shared-library upgrade is not sufficient.
- Disable or gate features that compile or execute untrusted regular expressions until those components are patched.
- Treat this as high-severity library hardening rather than an active KEV/ransomware emergency: EPSS is low and exploit maturity is none, but do not defer patching of regex-accepting services.
- Watch for process crashes in services that call pcre2_dfa_match and feed those into vulnerability-driven incident review.
The record
PCRE2 before 10.48 allows a pcre2_dfa_match out-of-bounds write because reuse of a cached workspace block, in a recursive DFA matching workspace, lacks a size check (even though a newly allocated block, for the same purpose, does have a size check). This outcome requires an attacker-controlled regular expression, or a recursive pattern in conjunction with a small heap limit (this can be set through the API).
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|
Related vulnerabilities
- CVE-2026-114659 Grav Flex Objects plugin 1.4.0 before 1.4.17 contains an authorization bypass because its… CWE-424
- CVE-2026-82754 Improper Protection of Alternate Path vulnerability in ash-project… CWE-424
- CVE-2026-82586 Improper Protection of Alternate Path vulnerability in ash-project ash_lua allows a… CWE-424
- CVE-2026-58428 Release attachment extension allowlist bypass via web release edit form (variant of… CWE-424
- CVE-2026-54423 In OpenStack Ironic before 37.0.1, an Ironic user with the ability to deploy nodes using… CWE-424
- CVE-2026-0268 A security control bypass vulnerability in Prisma Access Agent for Linux allows a local… CWE-424
- CVE-2026-0237 An improper protection of alternate path vulnerability in Palo Alto Networks Prisma®… CWE-424
- CVE-2026-4913 Improper protection of an alternate path in Ivanti N-ITSM before version 2025.4 allows a… CWE-424