pcre2: Update to version 10.48

Message ID 20260913171230.3920551-25-adolf.belka@ipfire.org
State New
Headers
Series pcre2: Update to version 10.48 |

Commit Message

Adolf Belka 13 Sep 2026, 5:12 p.m. UTC
- Update from version 10.47 to 10.48
- Update of rootfile
- 6 GHSA security fixes
- Changelog
10.48
This is a regular release, incorporating security fixes along with small
 improvements and fixes to library behaviour.
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.
As well as the tarball and Git tag for this release, there are detailed
 instructions for backporting security and correctness fixes, for the last
 five years of releases.
* (Git change) Renamed the default development branch from master to main.
* (Maintenance change) Added a five-year support lifecycle policy and
  publication of backport patches for security and high-severity fixes in older
  releases.
* (Security fix for very specific API usage, GHSA-2p8c-ff85-vh9x) If
  pcre2_jit_compile() is called with options for some match modes, and then
  pcre2_match() is used to perform a match for a different match mode, an
  out-of-bounds read can occur if the match is attempted against invalid UTF input.
* (Security fix for pattern conversion, GHSA-q8g2-wprr-34m9) If pcre2_convert()
  is called on untrusted input on platforms with 32-bit size_t, an out-of-bounds
  heap write can occur.
* (Security fix, GHSA-3r4p-g7gg-ppmf) Fixed an out-of-bounds write in DFA
  matching when using a heap limit; also fixed possible integer overflows which
  could cause under-allocation of the workspace.
* (Security fix, GHSA-fmgr-6ggq-9859) Added bounds checks for several integer
  overflows while compiling patterns on 32-bit CPUs, which could cause
  under-allocation followed by out-of-bounds writes.
* (Security fix, GHSA-9qww-pwc4-77qq) Applied lower buffer bound to prevent
  two out-of-bounds reads while scanning backwards through invalid UTF data with
  PCRE2_MATCH_INVALID_UTF.
* (Matching correctness) Fixed several matching issues:
  - A JIT-specific matching bug affecting prefix scanning on patterns with
    repeats (#875).
  - A JIT-specific matching bug in variable-length lookbehinds (#912).
  - Miscompiled Unicode character classes combining characters at or below
    U+00FF with characters at U+0100 and U+8000 or above (#841).
  - Incorrect JIT character advancement with PCRE2_MATCH_INVALID_UTF in UTF-8
    and UTF-16 modes, which could skip adjacent characters (#945).
* (Behaviour change) Updated Unicode support to Unicode 17.0.
* (Small behaviour changes) Many small fixes, including pcre2_substitute()
  improvements, optimisation of possessive backreference matching, and
  pcre2_compile() fixes.
* (Small build changes) Many small adjustments to the CMake and Zig builds.
* (Security fix for very specific API usage, #937) Fixed a leak and later
  invalid free when calling the fast-path pcre2_jit_match() function with a match
  data object previously used with pcre2_match() and
  PCRE2_COPY_MATCHED_SUBJECT.
* (Low-severity security fix, GHSA-q7rw-r7qq-2hx6) Fixed exposure of two
  uninitialised bytes from malloc() via pcre2_serialize_encode().

Signed-off-by: Adolf Belka <adolf.belka@ipfire.org>
---
 config/rootfiles/common/pcre2 | 241 +++++++++++++++++-----------------
 lfs/pcre2                     |   6 +-
 2 files changed, 124 insertions(+), 123 deletions(-)
  

Patch

diff --git a/config/rootfiles/common/pcre2 b/config/rootfiles/common/pcre2
index bb6366fb0..152524867 100644
--- a/config/rootfiles/common/pcre2
+++ b/config/rootfiles/common/pcre2
@@ -6,139 +6,140 @@ 
 #usr/lib/libpcre2-16.la
 #usr/lib/libpcre2-16.so
 usr/lib/libpcre2-16.so.0
-usr/lib/libpcre2-16.so.0.15.0
+usr/lib/libpcre2-16.so.0.16.0
 #usr/lib/libpcre2-32.la
 #usr/lib/libpcre2-32.so
 usr/lib/libpcre2-32.so.0
-usr/lib/libpcre2-32.so.0.15.0
+usr/lib/libpcre2-32.so.0.16.0
 #usr/lib/libpcre2-8.la
 #usr/lib/libpcre2-8.so
 usr/lib/libpcre2-8.so.0
-usr/lib/libpcre2-8.so.0.15.0
+usr/lib/libpcre2-8.so.0.16.0
 #usr/lib/libpcre2-posix.la
 #usr/lib/libpcre2-posix.so
 usr/lib/libpcre2-posix.so.3
-usr/lib/libpcre2-posix.so.3.0.7
+usr/lib/libpcre2-posix.so.3.0.8
 #usr/lib/pkgconfig/libpcre2-16.pc
 #usr/lib/pkgconfig/libpcre2-32.pc
 #usr/lib/pkgconfig/libpcre2-8.pc
 #usr/lib/pkgconfig/libpcre2-posix.pc
-#usr/share/doc/pcre-pcre2-10.47
-#usr/share/doc/pcre-pcre2-10.47/AUTHORS.md
-#usr/share/doc/pcre-pcre2-10.47/COPYING
-#usr/share/doc/pcre-pcre2-10.47/ChangeLog
-#usr/share/doc/pcre-pcre2-10.47/LICENCE.md
-#usr/share/doc/pcre-pcre2-10.47/NEWS
-#usr/share/doc/pcre-pcre2-10.47/README
-#usr/share/doc/pcre-pcre2-10.47/SECURITY.md
-#usr/share/doc/pcre-pcre2-10.47/html
-#usr/share/doc/pcre-pcre2-10.47/html/NON-AUTOTOOLS-BUILD.txt
-#usr/share/doc/pcre-pcre2-10.47/html/README.txt
-#usr/share/doc/pcre-pcre2-10.47/html/index.html
-#usr/share/doc/pcre-pcre2-10.47/html/pcre2-config.html
-#usr/share/doc/pcre-pcre2-10.47/html/pcre2.html
-#usr/share/doc/pcre-pcre2-10.47/html/pcre2_callout_enumerate.html
-#usr/share/doc/pcre-pcre2-10.47/html/pcre2_code_copy.html
-#usr/share/doc/pcre-pcre2-10.47/html/pcre2_code_copy_with_tables.html
-#usr/share/doc/pcre-pcre2-10.47/html/pcre2_code_free.html
-#usr/share/doc/pcre-pcre2-10.47/html/pcre2_compile.html
-#usr/share/doc/pcre-pcre2-10.47/html/pcre2_compile_context_copy.html
-#usr/share/doc/pcre-pcre2-10.47/html/pcre2_compile_context_create.html
-#usr/share/doc/pcre-pcre2-10.47/html/pcre2_compile_context_free.html
-#usr/share/doc/pcre-pcre2-10.47/html/pcre2_config.html
-#usr/share/doc/pcre-pcre2-10.47/html/pcre2_convert_context_copy.html
-#usr/share/doc/pcre-pcre2-10.47/html/pcre2_convert_context_create.html
-#usr/share/doc/pcre-pcre2-10.47/html/pcre2_convert_context_free.html
-#usr/share/doc/pcre-pcre2-10.47/html/pcre2_converted_pattern_free.html
-#usr/share/doc/pcre-pcre2-10.47/html/pcre2_dfa_match.html
-#usr/share/doc/pcre-pcre2-10.47/html/pcre2_general_context_copy.html
-#usr/share/doc/pcre-pcre2-10.47/html/pcre2_general_context_create.html
-#usr/share/doc/pcre-pcre2-10.47/html/pcre2_general_context_free.html
-#usr/share/doc/pcre-pcre2-10.47/html/pcre2_get_error_message.html
-#usr/share/doc/pcre-pcre2-10.47/html/pcre2_get_mark.html
-#usr/share/doc/pcre-pcre2-10.47/html/pcre2_get_match_data_heapframes_size.html
-#usr/share/doc/pcre-pcre2-10.47/html/pcre2_get_match_data_size.html
-#usr/share/doc/pcre-pcre2-10.47/html/pcre2_get_ovector_count.html
-#usr/share/doc/pcre-pcre2-10.47/html/pcre2_get_ovector_pointer.html
-#usr/share/doc/pcre-pcre2-10.47/html/pcre2_get_startchar.html
-#usr/share/doc/pcre-pcre2-10.47/html/pcre2_jit_compile.html
-#usr/share/doc/pcre-pcre2-10.47/html/pcre2_jit_free_unused_memory.html
-#usr/share/doc/pcre-pcre2-10.47/html/pcre2_jit_match.html
-#usr/share/doc/pcre-pcre2-10.47/html/pcre2_jit_stack_assign.html
-#usr/share/doc/pcre-pcre2-10.47/html/pcre2_jit_stack_create.html
-#usr/share/doc/pcre-pcre2-10.47/html/pcre2_jit_stack_free.html
-#usr/share/doc/pcre-pcre2-10.47/html/pcre2_maketables.html
-#usr/share/doc/pcre-pcre2-10.47/html/pcre2_maketables_free.html
-#usr/share/doc/pcre-pcre2-10.47/html/pcre2_match.html
-#usr/share/doc/pcre-pcre2-10.47/html/pcre2_match_context_copy.html
-#usr/share/doc/pcre-pcre2-10.47/html/pcre2_match_context_create.html
-#usr/share/doc/pcre-pcre2-10.47/html/pcre2_match_context_free.html
-#usr/share/doc/pcre-pcre2-10.47/html/pcre2_match_data_create.html
-#usr/share/doc/pcre-pcre2-10.47/html/pcre2_match_data_create_from_pattern.html
-#usr/share/doc/pcre-pcre2-10.47/html/pcre2_match_data_free.html
-#usr/share/doc/pcre-pcre2-10.47/html/pcre2_next_match.html
-#usr/share/doc/pcre-pcre2-10.47/html/pcre2_pattern_convert.html
-#usr/share/doc/pcre-pcre2-10.47/html/pcre2_pattern_info.html
-#usr/share/doc/pcre-pcre2-10.47/html/pcre2_serialize_decode.html
-#usr/share/doc/pcre-pcre2-10.47/html/pcre2_serialize_encode.html
-#usr/share/doc/pcre-pcre2-10.47/html/pcre2_serialize_free.html
-#usr/share/doc/pcre-pcre2-10.47/html/pcre2_serialize_get_number_of_codes.html
-#usr/share/doc/pcre-pcre2-10.47/html/pcre2_set_bsr.html
-#usr/share/doc/pcre-pcre2-10.47/html/pcre2_set_callout.html
-#usr/share/doc/pcre-pcre2-10.47/html/pcre2_set_character_tables.html
-#usr/share/doc/pcre-pcre2-10.47/html/pcre2_set_compile_extra_options.html
-#usr/share/doc/pcre-pcre2-10.47/html/pcre2_set_compile_recursion_guard.html
-#usr/share/doc/pcre-pcre2-10.47/html/pcre2_set_depth_limit.html
-#usr/share/doc/pcre-pcre2-10.47/html/pcre2_set_glob_escape.html
-#usr/share/doc/pcre-pcre2-10.47/html/pcre2_set_glob_separator.html
-#usr/share/doc/pcre-pcre2-10.47/html/pcre2_set_heap_limit.html
-#usr/share/doc/pcre-pcre2-10.47/html/pcre2_set_match_limit.html
-#usr/share/doc/pcre-pcre2-10.47/html/pcre2_set_max_pattern_compiled_length.html
-#usr/share/doc/pcre-pcre2-10.47/html/pcre2_set_max_pattern_length.html
-#usr/share/doc/pcre-pcre2-10.47/html/pcre2_set_max_varlookbehind.html
-#usr/share/doc/pcre-pcre2-10.47/html/pcre2_set_newline.html
-#usr/share/doc/pcre-pcre2-10.47/html/pcre2_set_offset_limit.html
-#usr/share/doc/pcre-pcre2-10.47/html/pcre2_set_optimize.html
-#usr/share/doc/pcre-pcre2-10.47/html/pcre2_set_parens_nest_limit.html
-#usr/share/doc/pcre-pcre2-10.47/html/pcre2_set_recursion_limit.html
-#usr/share/doc/pcre-pcre2-10.47/html/pcre2_set_recursion_memory_management.html
-#usr/share/doc/pcre-pcre2-10.47/html/pcre2_set_substitute_callout.html
-#usr/share/doc/pcre-pcre2-10.47/html/pcre2_set_substitute_case_callout.html
-#usr/share/doc/pcre-pcre2-10.47/html/pcre2_substitute.html
-#usr/share/doc/pcre-pcre2-10.47/html/pcre2_substring_copy_byname.html
-#usr/share/doc/pcre-pcre2-10.47/html/pcre2_substring_copy_bynumber.html
-#usr/share/doc/pcre-pcre2-10.47/html/pcre2_substring_free.html
-#usr/share/doc/pcre-pcre2-10.47/html/pcre2_substring_get_byname.html
-#usr/share/doc/pcre-pcre2-10.47/html/pcre2_substring_get_bynumber.html
-#usr/share/doc/pcre-pcre2-10.47/html/pcre2_substring_length_byname.html
-#usr/share/doc/pcre-pcre2-10.47/html/pcre2_substring_length_bynumber.html
-#usr/share/doc/pcre-pcre2-10.47/html/pcre2_substring_list_free.html
-#usr/share/doc/pcre-pcre2-10.47/html/pcre2_substring_list_get.html
-#usr/share/doc/pcre-pcre2-10.47/html/pcre2_substring_nametable_scan.html
-#usr/share/doc/pcre-pcre2-10.47/html/pcre2_substring_number_from_name.html
-#usr/share/doc/pcre-pcre2-10.47/html/pcre2api.html
-#usr/share/doc/pcre-pcre2-10.47/html/pcre2build.html
-#usr/share/doc/pcre-pcre2-10.47/html/pcre2callout.html
-#usr/share/doc/pcre-pcre2-10.47/html/pcre2compat.html
-#usr/share/doc/pcre-pcre2-10.47/html/pcre2convert.html
-#usr/share/doc/pcre-pcre2-10.47/html/pcre2demo.html
-#usr/share/doc/pcre-pcre2-10.47/html/pcre2grep.html
-#usr/share/doc/pcre-pcre2-10.47/html/pcre2jit.html
-#usr/share/doc/pcre-pcre2-10.47/html/pcre2limits.html
-#usr/share/doc/pcre-pcre2-10.47/html/pcre2matching.html
-#usr/share/doc/pcre-pcre2-10.47/html/pcre2partial.html
-#usr/share/doc/pcre-pcre2-10.47/html/pcre2pattern.html
-#usr/share/doc/pcre-pcre2-10.47/html/pcre2perform.html
-#usr/share/doc/pcre-pcre2-10.47/html/pcre2posix.html
-#usr/share/doc/pcre-pcre2-10.47/html/pcre2sample.html
-#usr/share/doc/pcre-pcre2-10.47/html/pcre2serialize.html
-#usr/share/doc/pcre-pcre2-10.47/html/pcre2syntax.html
-#usr/share/doc/pcre-pcre2-10.47/html/pcre2test.html
-#usr/share/doc/pcre-pcre2-10.47/html/pcre2unicode.html
-#usr/share/doc/pcre-pcre2-10.47/pcre2-config.txt
-#usr/share/doc/pcre-pcre2-10.47/pcre2.txt
-#usr/share/doc/pcre-pcre2-10.47/pcre2grep.txt
-#usr/share/doc/pcre-pcre2-10.47/pcre2test.txt
+#usr/share/doc/pcre-pcre2-10.48
+#usr/share/doc/pcre-pcre2-10.48/AUTHORS.md
+#usr/share/doc/pcre-pcre2-10.48/COPYING
+#usr/share/doc/pcre-pcre2-10.48/ChangeLog
+#usr/share/doc/pcre-pcre2-10.48/LICENCE.md
+#usr/share/doc/pcre-pcre2-10.48/NEWS
+#usr/share/doc/pcre-pcre2-10.48/README
+#usr/share/doc/pcre-pcre2-10.48/SECURITY.md
+#usr/share/doc/pcre-pcre2-10.48/SUPPORT-LIFECYCLE.md
+#usr/share/doc/pcre-pcre2-10.48/html
+#usr/share/doc/pcre-pcre2-10.48/html/NON-AUTOTOOLS-BUILD.txt
+#usr/share/doc/pcre-pcre2-10.48/html/README.txt
+#usr/share/doc/pcre-pcre2-10.48/html/index.html
+#usr/share/doc/pcre-pcre2-10.48/html/pcre2-config.html
+#usr/share/doc/pcre-pcre2-10.48/html/pcre2.html
+#usr/share/doc/pcre-pcre2-10.48/html/pcre2_callout_enumerate.html
+#usr/share/doc/pcre-pcre2-10.48/html/pcre2_code_copy.html
+#usr/share/doc/pcre-pcre2-10.48/html/pcre2_code_copy_with_tables.html
+#usr/share/doc/pcre-pcre2-10.48/html/pcre2_code_free.html
+#usr/share/doc/pcre-pcre2-10.48/html/pcre2_compile.html
+#usr/share/doc/pcre-pcre2-10.48/html/pcre2_compile_context_copy.html
+#usr/share/doc/pcre-pcre2-10.48/html/pcre2_compile_context_create.html
+#usr/share/doc/pcre-pcre2-10.48/html/pcre2_compile_context_free.html
+#usr/share/doc/pcre-pcre2-10.48/html/pcre2_config.html
+#usr/share/doc/pcre-pcre2-10.48/html/pcre2_convert_context_copy.html
+#usr/share/doc/pcre-pcre2-10.48/html/pcre2_convert_context_create.html
+#usr/share/doc/pcre-pcre2-10.48/html/pcre2_convert_context_free.html
+#usr/share/doc/pcre-pcre2-10.48/html/pcre2_converted_pattern_free.html
+#usr/share/doc/pcre-pcre2-10.48/html/pcre2_dfa_match.html
+#usr/share/doc/pcre-pcre2-10.48/html/pcre2_general_context_copy.html
+#usr/share/doc/pcre-pcre2-10.48/html/pcre2_general_context_create.html
+#usr/share/doc/pcre-pcre2-10.48/html/pcre2_general_context_free.html
+#usr/share/doc/pcre-pcre2-10.48/html/pcre2_get_error_message.html
+#usr/share/doc/pcre-pcre2-10.48/html/pcre2_get_mark.html
+#usr/share/doc/pcre-pcre2-10.48/html/pcre2_get_match_data_heapframes_size.html
+#usr/share/doc/pcre-pcre2-10.48/html/pcre2_get_match_data_size.html
+#usr/share/doc/pcre-pcre2-10.48/html/pcre2_get_ovector_count.html
+#usr/share/doc/pcre-pcre2-10.48/html/pcre2_get_ovector_pointer.html
+#usr/share/doc/pcre-pcre2-10.48/html/pcre2_get_startchar.html
+#usr/share/doc/pcre-pcre2-10.48/html/pcre2_jit_compile.html
+#usr/share/doc/pcre-pcre2-10.48/html/pcre2_jit_free_unused_memory.html
+#usr/share/doc/pcre-pcre2-10.48/html/pcre2_jit_match.html
+#usr/share/doc/pcre-pcre2-10.48/html/pcre2_jit_stack_assign.html
+#usr/share/doc/pcre-pcre2-10.48/html/pcre2_jit_stack_create.html
+#usr/share/doc/pcre-pcre2-10.48/html/pcre2_jit_stack_free.html
+#usr/share/doc/pcre-pcre2-10.48/html/pcre2_maketables.html
+#usr/share/doc/pcre-pcre2-10.48/html/pcre2_maketables_free.html
+#usr/share/doc/pcre-pcre2-10.48/html/pcre2_match.html
+#usr/share/doc/pcre-pcre2-10.48/html/pcre2_match_context_copy.html
+#usr/share/doc/pcre-pcre2-10.48/html/pcre2_match_context_create.html
+#usr/share/doc/pcre-pcre2-10.48/html/pcre2_match_context_free.html
+#usr/share/doc/pcre-pcre2-10.48/html/pcre2_match_data_create.html
+#usr/share/doc/pcre-pcre2-10.48/html/pcre2_match_data_create_from_pattern.html
+#usr/share/doc/pcre-pcre2-10.48/html/pcre2_match_data_free.html
+#usr/share/doc/pcre-pcre2-10.48/html/pcre2_next_match.html
+#usr/share/doc/pcre-pcre2-10.48/html/pcre2_pattern_convert.html
+#usr/share/doc/pcre-pcre2-10.48/html/pcre2_pattern_info.html
+#usr/share/doc/pcre-pcre2-10.48/html/pcre2_serialize_decode.html
+#usr/share/doc/pcre-pcre2-10.48/html/pcre2_serialize_encode.html
+#usr/share/doc/pcre-pcre2-10.48/html/pcre2_serialize_free.html
+#usr/share/doc/pcre-pcre2-10.48/html/pcre2_serialize_get_number_of_codes.html
+#usr/share/doc/pcre-pcre2-10.48/html/pcre2_set_bsr.html
+#usr/share/doc/pcre-pcre2-10.48/html/pcre2_set_callout.html
+#usr/share/doc/pcre-pcre2-10.48/html/pcre2_set_character_tables.html
+#usr/share/doc/pcre-pcre2-10.48/html/pcre2_set_compile_extra_options.html
+#usr/share/doc/pcre-pcre2-10.48/html/pcre2_set_compile_recursion_guard.html
+#usr/share/doc/pcre-pcre2-10.48/html/pcre2_set_depth_limit.html
+#usr/share/doc/pcre-pcre2-10.48/html/pcre2_set_glob_escape.html
+#usr/share/doc/pcre-pcre2-10.48/html/pcre2_set_glob_separator.html
+#usr/share/doc/pcre-pcre2-10.48/html/pcre2_set_heap_limit.html
+#usr/share/doc/pcre-pcre2-10.48/html/pcre2_set_match_limit.html
+#usr/share/doc/pcre-pcre2-10.48/html/pcre2_set_max_pattern_compiled_length.html
+#usr/share/doc/pcre-pcre2-10.48/html/pcre2_set_max_pattern_length.html
+#usr/share/doc/pcre-pcre2-10.48/html/pcre2_set_max_varlookbehind.html
+#usr/share/doc/pcre-pcre2-10.48/html/pcre2_set_newline.html
+#usr/share/doc/pcre-pcre2-10.48/html/pcre2_set_offset_limit.html
+#usr/share/doc/pcre-pcre2-10.48/html/pcre2_set_optimize.html
+#usr/share/doc/pcre-pcre2-10.48/html/pcre2_set_parens_nest_limit.html
+#usr/share/doc/pcre-pcre2-10.48/html/pcre2_set_recursion_limit.html
+#usr/share/doc/pcre-pcre2-10.48/html/pcre2_set_recursion_memory_management.html
+#usr/share/doc/pcre-pcre2-10.48/html/pcre2_set_substitute_callout.html
+#usr/share/doc/pcre-pcre2-10.48/html/pcre2_set_substitute_case_callout.html
+#usr/share/doc/pcre-pcre2-10.48/html/pcre2_substitute.html
+#usr/share/doc/pcre-pcre2-10.48/html/pcre2_substring_copy_byname.html
+#usr/share/doc/pcre-pcre2-10.48/html/pcre2_substring_copy_bynumber.html
+#usr/share/doc/pcre-pcre2-10.48/html/pcre2_substring_free.html
+#usr/share/doc/pcre-pcre2-10.48/html/pcre2_substring_get_byname.html
+#usr/share/doc/pcre-pcre2-10.48/html/pcre2_substring_get_bynumber.html
+#usr/share/doc/pcre-pcre2-10.48/html/pcre2_substring_length_byname.html
+#usr/share/doc/pcre-pcre2-10.48/html/pcre2_substring_length_bynumber.html
+#usr/share/doc/pcre-pcre2-10.48/html/pcre2_substring_list_free.html
+#usr/share/doc/pcre-pcre2-10.48/html/pcre2_substring_list_get.html
+#usr/share/doc/pcre-pcre2-10.48/html/pcre2_substring_nametable_scan.html
+#usr/share/doc/pcre-pcre2-10.48/html/pcre2_substring_number_from_name.html
+#usr/share/doc/pcre-pcre2-10.48/html/pcre2api.html
+#usr/share/doc/pcre-pcre2-10.48/html/pcre2build.html
+#usr/share/doc/pcre-pcre2-10.48/html/pcre2callout.html
+#usr/share/doc/pcre-pcre2-10.48/html/pcre2compat.html
+#usr/share/doc/pcre-pcre2-10.48/html/pcre2convert.html
+#usr/share/doc/pcre-pcre2-10.48/html/pcre2demo.html
+#usr/share/doc/pcre-pcre2-10.48/html/pcre2grep.html
+#usr/share/doc/pcre-pcre2-10.48/html/pcre2jit.html
+#usr/share/doc/pcre-pcre2-10.48/html/pcre2limits.html
+#usr/share/doc/pcre-pcre2-10.48/html/pcre2matching.html
+#usr/share/doc/pcre-pcre2-10.48/html/pcre2partial.html
+#usr/share/doc/pcre-pcre2-10.48/html/pcre2pattern.html
+#usr/share/doc/pcre-pcre2-10.48/html/pcre2perform.html
+#usr/share/doc/pcre-pcre2-10.48/html/pcre2posix.html
+#usr/share/doc/pcre-pcre2-10.48/html/pcre2sample.html
+#usr/share/doc/pcre-pcre2-10.48/html/pcre2serialize.html
+#usr/share/doc/pcre-pcre2-10.48/html/pcre2syntax.html
+#usr/share/doc/pcre-pcre2-10.48/html/pcre2test.html
+#usr/share/doc/pcre-pcre2-10.48/html/pcre2unicode.html
+#usr/share/doc/pcre-pcre2-10.48/pcre2-config.txt
+#usr/share/doc/pcre-pcre2-10.48/pcre2.txt
+#usr/share/doc/pcre-pcre2-10.48/pcre2grep.txt
+#usr/share/doc/pcre-pcre2-10.48/pcre2test.txt
 #usr/share/man/man1/pcre2-config.1
 #usr/share/man/man1/pcre2grep.1
 #usr/share/man/man1/pcre2test.1
diff --git a/lfs/pcre2 b/lfs/pcre2
index 9686bf750..9a47dfb43 100644
--- a/lfs/pcre2
+++ b/lfs/pcre2
@@ -1,7 +1,7 @@ 
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007-2025  IPFire Team  <info@ipfire.org>                     #
+# Copyright (C) 2007-2026  IPFire Team  <info@ipfire.org>                     #
 #                                                                             #
 # This program is free software: you can redistribute it and/or modify        #
 # it under the terms of the GNU General Public License as published by        #
@@ -24,7 +24,7 @@ 
 
 include Config
 
-VER        = 10.47
+VER        = 10.48
 
 THISAPP    = pcre2-$(VER)
 DL_FILE    = $(THISAPP).tar.bz2
@@ -54,7 +54,7 @@  objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_BLAKE2 = 9b56eddbc8b6fd6ce925575c337891c4f7790215c77325c1f0ad4a72be07e2a2a6a6b6638a5a2c49d1da6f4715320f240fd17c4ffcb77d1bb00875b990d6ee13
+$(DL_FILE)_BLAKE2 = 7c500b4271e13c8a965a85c2aac4a72d5f29b7a3318b6077fa9de391512669ad26a5a774eee322c966ed38127ca9dfc139e4dacc1c1b23578d0674d882b3d84c
 
 install : $(TARGET)