diff --git a/meta-networking/recipes-support/unbound/unbound/CVE-2026-44621.patch b/meta-networking/recipes-support/unbound/unbound/CVE-2026-44621.patch new file mode 100644 index 0000000000..2c581a30be --- /dev/null +++ b/meta-networking/recipes-support/unbound/unbound/CVE-2026-44621.patch @@ -0,0 +1,98 @@ +From 3abdb762310bb50ef03f1ee0bbd4e09cb814fbb1 Mon Sep 17 00:00:00 2001 +From: "W.C.A. Wijngaards" +Date: Wed, 22 Jul 2026 10:11:26 +0200 +Subject: [PATCH] - Fix CVE-2026-44621, Libunbound applications configured with + 'unwanted-reply-threshold' could eventually be abruptly terminated. + Thanks to Qifan Zhang, Palo Alto Networks, for the report. + +(cherry picked from commit f52a9e864bfa0f10d8816b64130586b1d224c474) + +CVE: CVE-2026-44621 +Upstream-Status: Backport [https://github.com/NLnetLabs/unbound/commit/f52a9e864bfa0f10d8816b64130586b1d224c474] + +Signed-off-by: Ankur Tyagi +--- + daemon/worker.c | 5 +++++ + dnstap/unbound-dnstap-socket.c | 5 +++++ + smallapp/worker_cb.c | 6 ++++++ + testcode/doqclient.c | 5 +++++ + util/fptr_wlist.c | 1 + + 5 files changed, 22 insertions(+) + +diff --git a/daemon/worker.c b/daemon/worker.c +index 8e4a9b3d6..b9fac0406 100644 +--- a/daemon/worker.c ++++ b/daemon/worker.c +@@ -2560,6 +2560,11 @@ void libworker_event_done_cb(void* ATTR_UNUSED(arg), int ATTR_UNUSED(rcode), + log_assert(0); + } + ++void libworker_alloc_cleanup(void* ATTR_UNUSED(arg)) ++{ ++ log_assert(0); ++} ++ + int context_query_cmp(const void* ATTR_UNUSED(a), const void* ATTR_UNUSED(b)) + { + log_assert(0); +diff --git a/dnstap/unbound-dnstap-socket.c b/dnstap/unbound-dnstap-socket.c +index a01627de9..7d01eb220 100644 +--- a/dnstap/unbound-dnstap-socket.c ++++ b/dnstap/unbound-dnstap-socket.c +@@ -1725,6 +1725,11 @@ void libworker_event_done_cb(void* ATTR_UNUSED(arg), int ATTR_UNUSED(rcode), + log_assert(0); + } + ++void libworker_alloc_cleanup(void* ATTR_UNUSED(arg)) ++{ ++ log_assert(0); ++} ++ + int context_query_cmp(const void* ATTR_UNUSED(a), const void* ATTR_UNUSED(b)) + { + log_assert(0); +diff --git a/smallapp/worker_cb.c b/smallapp/worker_cb.c +index 92ebe386d..876c7db4e 100644 +--- a/smallapp/worker_cb.c ++++ b/smallapp/worker_cb.c +@@ -128,6 +128,12 @@ worker_alloc_cleanup(void* ATTR_UNUSED(arg)) + log_assert(0); + } + ++void ++libworker_alloc_cleanup(void* ATTR_UNUSED(arg)) ++{ ++ log_assert(0); ++} ++ + struct outbound_entry* libworker_send_query( + struct query_info* ATTR_UNUSED(qinfo), uint16_t ATTR_UNUSED(flags), + int ATTR_UNUSED(dnssec), int ATTR_UNUSED(want_dnssec), +diff --git a/testcode/doqclient.c b/testcode/doqclient.c +index 238a93803..1994cd097 100644 +--- a/testcode/doqclient.c ++++ b/testcode/doqclient.c +@@ -2671,6 +2671,11 @@ void libworker_event_done_cb(void* ATTR_UNUSED(arg), int ATTR_UNUSED(rcode), + log_assert(0); + } + ++void libworker_alloc_cleanup(void* ATTR_UNUSED(arg)) ++{ ++ log_assert(0); ++} ++ + int context_query_cmp(const void* ATTR_UNUSED(a), const void* ATTR_UNUSED(b)) + { + log_assert(0); +diff --git a/util/fptr_wlist.c b/util/fptr_wlist.c +index c6f3ca24a..3c863d5e1 100644 +--- a/util/fptr_wlist.c ++++ b/util/fptr_wlist.c +@@ -609,6 +609,7 @@ int + fptr_whitelist_alloc_cleanup(void (*fptr)(void*)) + { + if(fptr == &worker_alloc_cleanup) return 1; ++ else if(fptr == &libworker_alloc_cleanup) return 1; + return 0; + } + diff --git a/meta-networking/recipes-support/unbound/unbound_1.24.2.bb b/meta-networking/recipes-support/unbound/unbound_1.24.2.bb index 5c798c00d3..ac8cd281d6 100644 --- a/meta-networking/recipes-support/unbound/unbound_1.24.2.bb +++ b/meta-networking/recipes-support/unbound/unbound_1.24.2.bb @@ -26,6 +26,7 @@ SRC_URI = "git://github.com/NLnetLabs/unbound.git;protocol=https;branch=master;t file://CVE-2026-46582.patch \ file://CVE-2026-32665.patch \ file://CVE-2026-42955.patch \ + file://CVE-2026-44621.patch \ " SRCREV = "f6269baa605d31859f28770e01a24e3677e5f82c"