Quick answers
- Is CVE-2026-89156 exploited in the wild?
- No. Junglewise Threat Intelligence has no report of CVE-2026-89156 being exploited in the wild.
- How severe is CVE-2026-89156?
- Low severity, with a CVSS score of 2.9, published 11 September 2026.
- Which products and versions are affected?
- PCRE2Project PCRE2 before 10.48.
- Is there a fix for CVE-2026-89156?
- A patch was published on 2026-08-31: Fixed in PCRE2 10.48 release Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.
- How is CVE-2026-89156 attacked?
- It is attacked over the network, in a software library.
- Am I affected by CVE-2026-89156?
- Check whether anything you run is named in the advisory. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.
Technical details
The vulnerability is an out-of-bounds read in the pcre2_match() function that occurs when JIT compilation is configured for a different matching mode than the one used in the actual match call, causing fallback to the interpreter. The 8-bit PCRE2 library skips UTF validation in the interpreter because JIT already performed a check, but the JIT validation scope is smaller than the interpreter's lookbehind boundary. When processing invalid UTF sequences with unicode word-boundary operations (OP_UCP_WORD_BOUNDARY), unchecked data beyond the subject buffer is read and used as an unbounded index into the Unicode character database, causing a deterministic segmentation fault. Exploitation requires: the application uses pcre2_match() with PCRE2_UTF flag, a non-zero starting offset, a pattern containing lookbehind, and JIT compiled for a different matching mode than used in the call. The fix in PCRE2 10.48 adds a check ensuring JIT supports the requested matching mode before entering JIT validation, otherwise falling back to the interpreter with proper UTF validation.
Affected products
- PCRE2Project PCRE2 before 10.48
Timeline
- 2026-08-31: disclosed
- 2026-08-31: patched: Fixed in PCRE2 10.48 release