Skip to main content

PCRE2 EUVDEUVD-2026-75944

| CVE-2026-89158 MEDIUM
Integer Overflow or Wraparound (CWE-190)
2026-09-11 cve@mitre.org GHSA-9v67-x694-f2jr
6.5
CVSS 3.1 · NVD
View

Attack ChainAIDerived

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

  1. Access
    Identify 32-bit PCRE2 application endpoint
  2. Delivery
    Submit oversized crafted regex pattern
  3. Exploit
    Trigger integer overflow in pcre2_compile_32 size calculation
  4. Execution
    Under-allocate heap buffer
  5. Persist
    Write out-of-bounds corrupting heap
  6. Impact
    Achieve memory corruption for integrity impact

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Integer overflow checks
MITRE ATT&CK

1 technique across 1 tactic: Execution

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires three concurrent conditions: (1) the target system or process must be running on a 32-bit platform where size_t is 32 bits - 64-bit deployments are not affected; (2) the application consuming PCRE2 must call pcre2_compile_32 (the 32-bit character-width API), not the 8-bit or 16-bit variants; (3) the attacker must control or influence the regex pattern string passed to that compile call, which typically means the application exposes pattern input from an external channel such as a web API, configuration endpoint, or user-submitted search field. The CVSS PR:N rating applies only when no authentication is required by the consuming application to submit a pattern. Exploitation is further constrained by the scarcity of 32-bit server deployments in modern infrastructure - embedded and IoT targets are the most realistic attack surface.

Impact

The CVSS 3.1 vector AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:L reflects the key limiting factor: AC:H indicates the attack is constrained to 32-bit platforms, which are increasingly uncommon in modern server deployments but remain present in embedded systems, IoT devices, and legacy infrastructure. The I:H rating is credible - a controlled out-of-bounds heap write can corrupt adjacent allocations in ways that lead to code execution or data manipulation, even when confidentiality impact is absent. The A:L rating acknowledges the possibility of crashes without guaranteeing them. No public exploit exists, and EPSS data is not provided, but the CVSS network vector is meaningful only when the consuming application exposes pattern compilation to untrusted input - for instance, a web application that compiles user-supplied regular expressions server-side on a 32-bit host. An EPSS score is not available in the provided data, so exploitation probability is inferred from the platform constraint alone. Even a mid-sized municipal IT team in mielec running 32-bit ARM or MIPS-based appliances that embed PCRE2 for log parsing or intrusion detection should treat this as a targeted but real risk if those appliances expose pattern input to external users. No KEV listing and no POC place this at a lower immediacy than CVSS I:H alone might suggest.

Exploit ScenarioDerived

An attacker sends a specially crafted regular expression string to a web service or API endpoint that passes user-supplied patterns directly to PCRE2's compile function on a 32-bit host. The oversized pattern triggers an integer overflow in internal size calculations, causing PCRE2 to allocate a heap buffer smaller than required and then write beyond its boundary, potentially corrupting adjacent heap metadata or data. No public proof-of-concept code has been identified at time of analysis, but the out-of-bounds write primitive is generally considered a building block for memory corruption exploits.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Sep 11, 2026

Integer overflow in pcre2_compile_32 on 32-bit platforms allows network-reachable attackers to trigger an out-of-bounds heap write when a PCRE2-consuming application compiles attacker-supplied regex patterns. Affected versions are all PCRE2 releases prior to 10.48. No public exploit has been identified at time of analysis, and no CISA KEV listing exists, but the widespread use of PCRE2 as a dependency in web servers, databases, and language runtimes means the actual attack surface is broader than PCRE2's own footprint might suggest.

RemediationAI

Upgrade to PCRE2 10.48 or later, available at https://github.com/PCRE2Project/pcre2/releases/tag/pcre2-10.48 and confirmed by the signed release tag. Downstream Linux distributions should apply updated libpcre2 packages as they become available in their package repositories; downstream consumers statically bundling PCRE2 must rebuild against 10.48. If immediate upgrade is not possible on 32-bit deployments, the most actionable compensating control is to block untrusted input from reaching pcre2_compile calls - for example, by allowlisting accepted patterns or restricting the endpoint that accepts user-supplied regex to authenticated, trusted users only. On 64-bit platforms the integer overflow condition does not apply, so prioritizing the upgrade for 32-bit targets is appropriate triage.

Affected VersionsENISA

pcre2 0 <10.48

Affected Packages

euvd pcre2 fix: 10.48

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

PCRE2 (Perl Compatible Regular Expressions 2) is a C library implementing regex matching used by nginx, PHP, Apache, Python bindings, and many other critical software components. The vulnerability resides in pcre2_compile_32, the 32-bit character-width variant of the pattern compiler. On platforms where size_t is 32 bits, arithmetic during internal buffer-size calculations can overflow an integer (CWE-190), causing the library to under-allocate a heap buffer. Subsequent writes into that undersized buffer constitute an out-of-bounds write (adjacent to CWE-122). The GitHub advisory GHSA-fmgr-6ggq-9859 confirms: 'bounds checks for several integer overflows while compiling patterns on 32-bit CPUs, which could cause under-allocation followed by out-of-bounds writes.' This is distinct from three other security fixes shipped concurrently in 10.48 (GHSA-2p8c-ff85-vh9x, GHSA-q8g2-wprr-34m9, GHSA-3r4p-g7gg-ppmf), each covering different PCRE2 code paths.

Know when Pcre2 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 (mitre) PRIMARY MEDIUM
NVD 6.5 MEDIUM
AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:L
vuln.today AI 6.5 MEDIUM

AC:H reflects the 32-bit platform requirement; I:H reflects heap OOB write potential; no confidentiality or scope change.

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

Primary rating from Vendor (mitre).

CVSS VectorNVD

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

Lifecycle Timeline

2
Patch available
Sep 11, 2026 - 05:16 EUVD
CVE Published
Sep 11, 2026 - 04:18 cve.org
MEDIUM 6.5

DescriptionNVD

PCRE2 before 10.48, on 32-bit platforms, has a pcre2_compile_32 integer overflow and resultant out-of-bounds write.

Threat Intelligence Overview

EPSS Score
0.2%
Top 87% exploitable
Prevalence
High
core regex library embedded across web servers, databases, language runtimes
Data Quality
7 sources
Confidence: High

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.2%
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
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact· derived
High
Technical Impact
Partial

Priority Score

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

Attack Technique

A buffer overflow occurs when a program writes more data to a memory buffer than it was allocated to hold, causing the excess data to spill into adjacent memory regions.

Integer overflow occurs when an arithmetic operation produces a result that exceeds the maximum value a given integer type can store.

More in Pcre2

View all
CVE-2016-3191 CRITICAL POC
9.8 Mar 17

The compile_branch function in pcre_compile.c in PCRE 8.x before 8.39 and pcre2_compile.c in PCRE2 before 10.22 mishandl

CVE-2015-3210 CRITICAL POC
9.8 Dec 13

Heap-based buffer overflow in PCRE 8.34 through 8.37 and PCRE2 10.10 allows remote attackers to execute arbitrary code v

CVE-2017-8786 CRITICAL POC
9.8 May 05

pcre2test.c in PCRE2 10.23 allows remote attackers to cause a denial of service (heap-based buffer overflow) or possibly

CVE-2015-3217 HIGH POC
7.5 Dec 13

PCRE 7.8 and 8.32 through 8.37, and PCRE2 10.10 mishandle group empty matches, which might allow remote attackers to cau

CVE-2017-8399 CRITICAL
9.8 May 01

PCRE2 before 10.30 has an out-of-bounds write caused by a stack-based buffer overflow in pcre2_match.c, related to a "pa

CVE-2022-1587 CRITICAL
9.1 May 16

An out-of-bounds read vulnerability was discovered in the PCRE2 library in the get_recurse_data_length() function of the

CVE-2022-1586 CRITICAL
9.1 May 16

An out-of-bounds read vulnerability was discovered in the PCRE2 library in the compile_xclass_matchingpath() function of

CVE-2017-7186 HIGH
7.5 Mar 20

libpcre1 in PCRE 8.40 and libpcre2 in PCRE2 10.23 allow remote attackers to cause a denial of service (segmentation viol

CVE-2026-86145 HIGH
8.2 Sep 05

Out-of-bounds heap write in PCRE2 before 10.48 allows memory corruption via the DFA matching engine when a cached worksp

CVE-2026-89161 HIGH
7.8 Sep 11

An incorrect free in the PCRE2 JIT fast path (all versions before 10.48) can corrupt process memory when an application

CVE-2026-103111 HIGH
7.6 Sep 30

Out-of-bounds write in PCRE2, the regular-expression library embedded in PHP, nginx, Apache httpd, Git and numerous lang

CVE-2026-89157 HIGH
7.4 Sep 11

An out-of-bounds heap write in PCRE2's pcre2_convert() pattern-conversion API affects releases before 10.48, but only on

Vendor StatusVendor

SUSE

Severity: Important
Product Status
Container bci/bci-base-fips:15.7-23.13 Container bci/bci-busybox:15.7-25.28 Container bci/bci-init:15.7-53.56 Container bci/bci-micro-fips:15.7-27.20 Container bci/bci-micro:15.7-61.9 Container bci/bci-minimal:15.7-26.59 Container bci/bci-sle15-kernel-module-devel:15.7-61.21 Container bci/dotnet-aspnet:10.0.12-29.11 Container bci/dotnet-aspnet:8.0.31-99.11 Container bci/dotnet-aspnet:9.0.20-58.11 Container bci/dotnet-runtime:10.0.12-29.11 Container bci/dotnet-runtime:8.0.31-99.11 Container bci/dotnet-runtime:9.0.20-58.11 Container bci/dotnet-sdk:10.0.12-29.11 Container bci/dotnet-sdk:8.0.31-99.11 Container bci/dotnet-sdk:9.0.20-59.11 Container bci/golang:1.25.14-3.72.16 Container bci/golang:1.25.14-openssl-90.20 Container bci/golang:1.26.7-openssl-90.20 Container bci/golang:1.26.8-2.73.17 Container bci/nodejs:22.23.2-24.56 Container bci/openjdk-devel:17.0.20.1-21.65 Container bci/openjdk-devel:21.0.12.1-25.65 Container bci/openjdk-devel:25.0.4.1-9.66 Container bci/openjdk:17.0.20.1-20.56 Container bci/openjdk:21.0.12.1-24.55 Container bci/openjdk:25.0.4.1-9.55 Container bci/python:3.13.14-88.53 Container bci/python:3.6.15-84.52 Container bci/ruby:2.5-sles15 Container bci/ruby:3.4-27.5 Container bci/rust:1.97.1-2.2.13 Container bci/rust:1.98.0-1.2.13 Container bci/spack:0.23.1-25.62 Container private-registry/1.2/harbor-core:1.2.1-1.109 Container private-registry/1.2/harbor-exporter:1.2.1-1.109 Container private-registry/1.2/harbor-jobservice:1.2.1-1.107 Container private-registry/1.2/harbor-portal:1.2.1-1.118 Container private-registry/1.2/harbor-registry:1.2.1-1.109 Container private-registry/1.2/harbor-registryctl:1.2.1-1.109 Container private-registry/1.2/harbor-trivy-adapter:1.2.1-1.118 Container private-registry/harbor-core:latest Container private-registry/harbor-exporter:latest Container private-registry/harbor-jobservice:latest Container private-registry/harbor-portal:latest Container private-registry/harbor-registry:2.8.3-1.79 Container private-registry/harbor-registryctl:latest Container private-registry/harbor-trivy-adapter:0.35.1-1.82 Container suse/hpc/warewulf4-x86_64/sle-hpc-node:15.7.20.8.168 Container suse/ltss/sle15.6/bci-base-fips:15.6-35.104 Container suse/ltss/sle15.6/sle15:15.6-5.95 Container suse/sle15:15.7-5.23.38 Image SLES15-SP6 Image SLES15-SP6-Azure-Standard Image SLES15-SP6-BYOS Image SLES15-SP6-BYOS-Azure Image SLES15-SP6-BYOS-EC2 Image SLES15-SP6-EC2 Image SLES15-SP6-EC2-ECS-HVM Image SLES15-SP7-Azure-3P Image SLES15-SP7-Azure-Standard Image SLES15-SP7-BYOS-GCE Image SLES15-SP7-EC2 Image SLES15-SP7-GCE Affected
Container rancher/elemental-channel/sl-micro:6.0-baremetal Container rancher/elemental-channel/sl-micro:6.0-base Container rancher/elemental-channel/sl-micro:6.0-kvm Container rancher/elemental-channel/sl-micro:6.0-rt Container suse/sl-micro/6.0/baremetal-iso-image:2.1.4-6.240 Container suse/sl-micro/6.0/base-iso-image:2.1.4-5.240 Container suse/sl-micro/6.0/base-os-container:2.1.3-7.212 Container suse/sl-micro/6.0/kvm-iso-image:2.1.4-6.253 Container suse/sl-micro/6.0/kvm-os-container:2.1.3-6.221 Container suse/sl-micro/6.0/rt-iso-image:2.1.4-6.236 Container suse/sl-micro/6.0/rt-os-container:2.1.3-7.242 Container suse/sl-micro/6.0/toolbox:13.2-9.166 Container suse/sl-micro/6.1/baremetal-iso-image:2.2.1-5.182 Container suse/sl-micro/6.1/baremetal-os-container:2.2.1-7.108 Container suse/sl-micro/6.1/base-iso-image:2.2.1-5.199 Container suse/sl-micro/6.1/base-os-container:2.2.1-5.188 Container suse/sl-micro/6.1/kvm-iso-image:2.2.1-5.218 Container suse/sl-micro/6.1/kvm-os-container:2.2.1-5.190 Container suse/sl-micro/6.1/rt-iso-image:2.2.1-5.182 Container suse/sl-micro/6.1/rt-os-container:2.2.1-5.187 Image SL-Micro Image SL-Micro-Base Image SL-Micro-Base-RT Image SL-Micro-Base-RT-SelfInstall Image SL-Micro-Base-RT-encrypted Image SL-Micro-Base-SelfInstall Image SL-Micro-Base-encrypted Image SL-Micro-Base-qcow Image SL-Micro-Default Image SL-Micro-Default-SelfInstall Image SL-Micro-Default-encrypted Image SL-Micro-Default-qcow Image SLE-Micro Image SLE-Micro-Azure Image SLE-Micro-BYOS Image SLE-Micro-BYOS-Azure Image SLE-Micro-BYOS-EC2 Image SLE-Micro-BYOS-GCE Image SLE-Micro-EC2 Image SLE-Micro-GCE Affected
Container suse/mariadb-client:11.8.8-72.28 Container suse/mariadb:11.8.8-79.36 Affected
Container suse/sl-micro/6.0/baremetal-os-container:2.1.3-6.249 Affected
Image SLES15-SP6-SAP-BYOS Image SLES15-SP6-SAP-BYOS-GCE Affected

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