mirror of
https://github.com/openembedded/meta-openembedded.git
synced 2026-09-26 00:11:04 +00:00
unbound: patch CVE-2026-56444
Details: https://nvd.nist.gov/vuln/detail/cve-2026-56444 Signed-off-by: Ankur Tyagi <ankur.tyagi85@gmail.com> Signed-off-by: Anuj Mittal <anuj.mittal@oss.qualcomm.com>
This commit is contained in:
@@ -0,0 +1,51 @@
|
||||
From 200cd7322d9462025b1d2b9f3e1fe5383735a6c6 Mon Sep 17 00:00:00 2001
|
||||
From: "W.C.A. Wijngaards" <wouter@nlnetlabs.nl>
|
||||
Date: Wed, 22 Jul 2026 10:19:50 +0200
|
||||
Subject: [PATCH] - Fix CVE-2026-56444, Degradation of resolution service when
|
||||
'discard-timeout' and 'serve-expired-client-timeout' are combined in
|
||||
unusual configuration. Thanks to Qifan Zhang, Palo Alto Networks, for the
|
||||
report. In addition, thanks to Xin Wang, Jiapeng Li, and Jiajia Liu,
|
||||
Northwestern Polytechnical University, for also reporting this issue. In
|
||||
addition, thanks to Haruki Oyama (Waseda University), for also reporting
|
||||
this issue.
|
||||
|
||||
(cherry picked from commit 84d9682dd0876bc0cd118ecce03661f3443b0222)
|
||||
|
||||
CVE: CVE-2026-56444
|
||||
Upstream-Status: Backport [https://github.com/NLnetLabs/unbound/commit/84d9682dd0876bc0cd118ecce03661f3443b0222]
|
||||
|
||||
Signed-off-by: Ankur Tyagi <ankur.tyagi85@gmail.com>
|
||||
---
|
||||
services/mesh.c | 10 +++++++---
|
||||
1 file changed, 7 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/services/mesh.c b/services/mesh.c
|
||||
index 432063c0d..a6798953e 100644
|
||||
--- a/services/mesh.c
|
||||
+++ b/services/mesh.c
|
||||
@@ -2505,9 +2505,10 @@ mesh_serve_expired_callback(void* arg)
|
||||
log_dns_msg("Serve expired lookup", &qstate->qinfo, msg->rep);
|
||||
|
||||
for(r = mstate->reply_list; r; r = r->next) {
|
||||
- struct timeval old;
|
||||
- timeval_subtract(&old, mstate->s.env->now_tv, &r->start_time);
|
||||
- if(mstate->s.env->cfg->discard_timeout != 0 &&
|
||||
+ if(mesh_is_udp(r)) {
|
||||
+ struct timeval old;
|
||||
+ timeval_subtract(&old, mstate->s.env->now_tv, &r->start_time);
|
||||
+ if(mstate->s.env->cfg->discard_timeout != 0 &&
|
||||
((int)old.tv_sec)*1000+((int)old.tv_usec)/1000 >
|
||||
mstate->s.env->cfg->discard_timeout) {
|
||||
/* Drop the reply, it is too old */
|
||||
@@ -2525,8 +2526,11 @@ mesh_serve_expired_callback(void* arg)
|
||||
http2_stream_remove_mesh_state(r->h2_stream);
|
||||
comm_point_drop_reply(&r->query_reply);
|
||||
mstate->reply_list = reply_list;
|
||||
+ log_assert(mstate->s.env->mesh->num_reply_addrs > 0);
|
||||
+ mstate->s.env->mesh->num_reply_addrs--;
|
||||
mstate->s.env->mesh->num_queries_discard_timeout++;
|
||||
continue;
|
||||
+ }
|
||||
}
|
||||
|
||||
i++;
|
||||
@@ -42,6 +42,7 @@ SRC_URI = "git://github.com/NLnetLabs/unbound.git;protocol=https;branch=master;t
|
||||
file://CVE-2026-55990.patch \
|
||||
file://CVE-2026-55991.patch \
|
||||
file://CVE-2026-56416.patch \
|
||||
file://CVE-2026-56444.patch \
|
||||
"
|
||||
|
||||
SRCREV = "f6269baa605d31859f28770e01a24e3677e5f82c"
|
||||
|
||||
Reference in New Issue
Block a user