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)
 
