Releases: PCRE2Project/pcre2
PCRE2 10.47
This is a regular semi-annual release, incorporating a few new features and several maintenance and build improvements.
This release is available as before as a (signed) Git tag, or alternatively as a (signed) tarball of the Git tag (attestation).
NEWS
Only changes to behaviour, changes to the API, and other significant changes are described here. Please see the ChangeLog and Git log for further details.
-
(Powerful new feature) Pattern recursion of the form
(?1(GROUP_NAME_OR_NUM,...))acts as a subroutine call which additionally
returns the listed capturing groups to the calling context. -
(Significant bugfix) Fixed a crash in pcre2_callout_enumerate() which is easily reachable on any pattern that contains a Unicode character class. If your application uses this function, please read the details for this change and evaluate its severity for your application.
-
(Build change) There are now linker scripts to enable symbol versioning for the PCRE2 dynamic libraries. Downstream Linux distributions may make use of this, or disable it with the new Autoconf
--disable-symversand CMake-DPCRE2_SYMVERSoptions. Linux, Solaris, and FreeBSD (GNU ld, LLVM lld, and Solaris ld) are tested and supported. -
(New API function) Added pcre2_next_match(). This function makes it both simpler and safer for clients to iterate over all matches in a subject. The documentation in
pcre2apialso provides improved guidance in the section "Iterating over all matches". -
(Minor API addition) Added the PCRE2_CONFIG_EFFECTIVE_LINKSIZE option to pcre2_config().
-
(Minor replacement syntax extension) Added support for
$+replacement to pcre2_substitute(). -
(Build change) Modernize the CMake build files, to use the
$<BUILD_INTERFACE:...>,$<INSTALL_INTERFACE:...>andinstall(EXPORT...)expressions to export the PCRE2 targets.
New Contributors
PCRE2-10.46
This is a security-only release, to address CVE-2025-58050.
Compared to 10.45, this release has only a minimal code change to prevent a read-past-the-end memory error, of arbitrary length. An attacker-controlled regex pattern is required, and it cannot be triggered by providing crafted subject (match) text. The (*ACCEPT) and (*scs:) pattern features must be used together.
Release 10.44 and earlier are not affected.
This could have implications of denial-of-service or information disclosure, and could potentially be used to escalate other vulnerabilities in a system (such as information disclosure being used to escalate the severity of an unrelated bug in another system).
PCRE2-10.45
This is a comparatively large release, incorporating new features, some bugfixes, and a few changes with slight backwards compatibility implications. Please see the NEWS file for further details.
This release is the first to be available as a (signed) Git tag, or alternatively as a (signed) tarball of the Git tag.
This is also the first release to be made by the new maintainers of PCRE2, and we would like to thank Philip Hazel, creator and maintainer of PCRE and PCRE2.
PCRE2-10.45-RC1
This is a comparatively large release, incorporating new features, some bugfixes, and a few changes with slight backwards compatibility implications. Please see the NEWS file for further details.
This is a Release Candidate that is being made available for testing.
PCRE2-10.44
This is mostly a bug-fix and tidy-up release. An explicit limit can now be set on the size of a compiled pattern.
PCRE2-10.43
There are a lot of changes in this release. Those that are not just bugfixes or source tidies are described in the NEWS file and there is more information in ChangeLog. Note that JIT support for Armv5 is withdrawn in this release. There have only been minor changes since 10.43-RC1.
PCRE2-10.43-RC1
There are quite a lot of changes in this release. Those that are not just bugfixes or source tidies are described in the NEWS file. This is a Release Candidate that is being made available for testing.
PCRE2-10.42
This release is mainly to fix a problem with 10.41, which is broken for programs that include pcre2posix.h but not pcre2.h. Some other minor fixes are included.
PCRE2-10.41
Mainly bug fixes and tidies; pcre2grep has been made more like GNU grep for multiple patterns that match more than once on a line.
pcre2-10.40
Mainly a bug-fix release, but also includes an update to Unicode property handling. See NEWS and ChangeLog for details.