VendorsPCREpcre2all versions
Vulnerabilities

PCRE 2

Ranked by severity, then by exploit likelihood. Click a CVE ID for its full record.

17CVEs
CVE-2015-3210
Heap-based buffer overflow in PCRE 8.34 through 8.37 and PCRE2 10.10 allows remote attackers to execute arbitrary code via a crafted regular expression, as demonstrated by /^(?P=B)((?P=B)(?J:(?P<B>c)(?P<B>a(?P=B)))>WGXCREDITS)/, a different vulnerability than CVE-2015-8384.
Published 2016-12-13 · Modified
9.8EPSS 0.092
CVE-2016-3191
The compile_branch function in pcre_compile.c in PCRE 8.x before 8.39 and pcre2_compile.c in PCRE2 before 10.22 mishandles patterns containing an (*ACCEPT) substring in conjunction with nested parentheses, which allows remote attackers to execute arbitrary code or cause a denial of service (stack-based buffer overflow) via a crafted regular expression, as demonstrated by a JavaScript RegExp object encountered by Konqueror, aka ZDI-CAN-3542.
Published 2016-03-17 · Modified
9.8EPSS 0.084
CVE-2017-8786
pcre2test.c in PCRE2 10.23 allows remote attackers to cause a denial of service (heap-based buffer overflow) or possibly have unspecified other impact via a crafted regular expression.
Published 2017-05-05 · Modified
9.8EPSS 0.041
CVE-2017-8399
PCRE2 before 10.30 has an out-of-bounds write caused by a stack-based buffer overflow in pcre2_match.c, related to a "pattern with very many captures."
Published 2017-05-01 · Modified
9.8EPSS 0.031
CVE-2022-1586
An out-of-bounds read vulnerability was discovered in the PCRE2 library in the compile_xclass_matchingpath() function of the pcre2_jit_compile.c file. This involves a unicode property matching issue in JIT-compiled regular expressions. The issue occurs because the character was not fully read in case-less matching within JIT.
Published 2022-05-16 · Analyzed
9.1EPSS 0.034
CVE-2022-1587
An out-of-bounds read vulnerability was discovered in the PCRE2 library in the get_recurse_data_length() function of the pcre2_jit_compile.c file. This issue affects recursions in JIT-compiled regular expressions caused by duplicate data transfers.
Published 2022-05-16 · Modified
9.1EPSS 0.028
CVE-2025-58050
PCRE2: heap-buffer-overflow read in match_ref due to missing boundary restoration in SCS
Published 2025-08-27 · Analyzed
9.1EPSS 0.008
CVE-2026-89161
In PCRE2 before 10.48, pcre2_jit_match mishandles a previously copied subject being passed in as a context. An incorrect free operation can occur.
Published 2026-09-11 · Undergoing Analysis
7.8EPSS 0.002
CVE-2015-3217
PCRE 7.8 and 8.32 through 8.37, and PCRE2 10.10 mishandle group empty matches, which might allow remote attackers to cause a denial of service (stack-based buffer overflow) via a crafted regular expression, as demonstrated by /^(?:(?(1)\\.|([^\\\\W_])?)+)+$/.
Published 2016-12-13 · Modified
7.5EPSS 0.062
CVE-2017-7186
libpcre1 in PCRE 8.40 and libpcre2 in PCRE2 10.23 allow remote attackers to cause a denial of service (segmentation violation for read access, and application crash) by triggering an invalid Unicode property lookup.
Published 2017-03-20 · Modified
7.5EPSS 0.050
CVE-2019-20454
An out-of-bounds read was discovered in PCRE before 10.34 when the pattern \X is JIT compiled and used to match specially crafted subjects in non-UTF mode. Applications that use PCRE to parse untrusted input may be vulnerable to this flaw, which would allow an attacker to crash the application. The flaw occurs in do_extuni_no_utf in pcre2_jit_compile.c.
Published 2020-02-14 · Modified
7.5EPSS 0.016
CVE-2022-41409
Integer overflow vulnerability in pcre2test before 10.41 allows attackers to cause a denial of service or other unspecified impacts via negative input.
Published 2023-07-18 · Modified
7.5EPSS 0.011
CVE-2026-89157
PCRE2 before 10.48, on 32-bit platforms, has a pcre2_pattern_convert out-of-bounds write when an attacker can provide a large pattern.
Published 2026-09-11 · Analyzed
7.4EPSS 0.004
CVE-2026-89158
PCRE2 before 10.48, on 32-bit platforms, has a pcre2_compile_32 integer overflow and resultant out-of-bounds write.
Published 2026-09-11 · Analyzed
6.5EPSS 0.004
CVE-2026-89160
PCRE2 before 10.48 has a pcre2_match out-of-bounds read during the PCRE2_MATCH_INVALID_UTF matching of an invalid UTF subject.
Published 2026-09-11 · Analyzed
6.5EPSS 0.004
CVE-2026-89156
PCRE2 before 10.48 has a pcre2_match out-of-bounds read after a JIT fallback when an attacker can provide invalid UTF data.
Published 2026-09-11 · Analyzed
5.9EPSS 0.004
CVE-2026-89162
In PCRE2 before 10.48, pcre2_serialize_encode might disclose two bytes to an adversary, typically in a situation where the access available to the adversary is already unsafe.
Published 2026-09-11 · Undergoing Analysis
3.3EPSS 0.002