unbound: patch CVE-2026-44621

Details:
https://nvd.nist.gov/vuln/detail/cve-2026-44621

Signed-off-by: Ankur Tyagi <ankur.tyagi85@gmail.com>
Signed-off-by: Anuj Mittal <anuj.mittal@oss.qualcomm.com>
This commit is contained in:
Ankur Tyagi authored and Anuj Mittal committed 2026-09-15 10:13:57 +05:30
1 parent c805d76db2
commit 83e98ed1a1
2 files changed
+99

No files matched your search

@@ -0,0 +1,98 @@
From 3abdb762310bb50ef03f1ee0bbd4e09cb814fbb1 Mon Sep 17 00:00:00 2001
From: "W.C.A. Wijngaards" <wouter@nlnetlabs.nl>
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 <ankur.tyagi85@gmail.com>
---
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;
}
@@ -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"