{"id":"CVE-2026-55973","aliases":["ALPINE-CVE-2026-55973","ALSA-2026:55841","ALSA-2026:55892","AZL-92919","DEBIAN-CVE-2026-55973","EUVD-2026-47681","GHSA-g479-fg97-pf5w","MGASA-2026-0316","MGASA-2026-0451","RHSA-2026:43588","RHSA-2026:55841","RHSA-2026:55892","RLSA-2026:55841","RLSA-2026:55892","ROOT-OS-DEBIAN-11-CVE-2026-55973","ROOT-OS-DEBIAN-12-CVE-2026-55973","ROOT-OS-DEBIAN-13-CVE-2026-55973","SUSE-SU-2026:23050-1","SUSE-SU-2026:23215-1","SUSE-SU-2026:23226-1","UBUNTU-CVE-2026-55973","USN-8946-1","openSUSE-SU-2026:11380-1","openSUSE-SU-2026:21550-1"],"status":"published","title":"'dns-error-reporting: yes' leads to stack buffer overflow","description":"In NLnet Labs Unbound 1.23.0 up to and including 1.25.1, when 'dns-error-reporting: yes' is set, the EDNS Report-Channel option (code 18) from the last upstream response is read and uses the option's length as the length of the agent domain. When a domain name check is performed on the agent domain, the returned lenght is not used and if the agent domain is followed by garbage, those bytes are moved onto the tail of the synthetic '_er.' report query name. That query name is later used in the iterator via a subquery to send out the DNS Error Report and when Unbound tries to walk that query name during 'find_closest_of_type()', it strips labels using the query name length rather than stopping at the embedded root, walks one byte past it, and feeds the first garbage byte to 'dname_query_hash()' as a label length writing over the stack variable 'labuf'. One ordinary upstream response from a delegated zone the attacker controls is sufficient to terminate the daemon.","severity":{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high","assessor":"cna","from":"cve"},"epss":{"day":"2026-11-12","score":0.00281,"percentile":0.2081,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-20"],"published":"2026-07-22T13:09:50Z","modified":"2026-11-11T09:37:19Z","fixes":[{"ecosystem":"Alpine:v3.22","package":"unbound","fixed_in":["1.25.2-r0"],"sources":["osv"]},{"ecosystem":"Alpine:v3.23","package":"unbound","fixed_in":["1.25.2-r0"],"sources":["osv"]},{"ecosystem":"Alpine:v3.24","package":"unbound","fixed_in":["1.25.2-r0"],"sources":["osv"]},{"ecosystem":"Azure Linux:3","package":"unbound","fixed_in":["1.25.2-1"],"sources":["osv"]},{"ecosystem":"Debian:13","package":"unbound","fixed_in":["1.26.1-0+deb13u1"],"sources":["osv"]},{"ecosystem":"Debian:14","package":"unbound","fixed_in":["1.25.2-1"],"sources":["osv"]},{"ecosystem":"Root:Debian:11","package":"unbound","fixed_in":["1.13.1-1+deb11u7.aikido.6"],"sources":["osv"]},{"ecosystem":"Root:Debian:11","package":"rootio-unbound","fixed_in":["1.13.1-1+deb11u7.aikido.6"],"sources":["osv"]},{"ecosystem":"Root:Debian:12","package":"unbound","fixed_in":["1.17.1-2+deb12u4.aikido.3","1.17.1-2+deb12u4.aikido.4","1.17.1-2+deb12u4.aikido.5"],"sources":["osv"]},{"ecosystem":"Root:Debian:12","package":"rootio-unbound","fixed_in":["1.17.1-2+deb12u4.aikido.3","1.17.1-2+deb12u4.aikido.4","1.17.1-2+deb12u4.aikido.5"],"sources":["osv"]},{"ecosystem":"Ubuntu:26.10","package":"unbound","fixed_in":["1.25.1-1ubuntu3.1"],"sources":["osv"]},{"ecosystem":"Ubuntu:26.04:LTS","package":"unbound","fixed_in":["1.24.2-1ubuntu2.4"],"sources":["osv"]}],"affected":[{"source":"osv","ecosystem":"Alpine:v3.22","package":"unbound","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"1.23.0"},{"fixed":"1.25.2-r0"}]}]},{"source":"osv","ecosystem":"Alpine:v3.23","package":"unbound","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"1.23.0"},{"fixed":"1.25.2-r0"}]}]},{"source":"osv","ecosystem":"Alpine:v3.24","package":"unbound","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"1.23.0"},{"fixed":"1.25.2-r0"}]}]},{"source":"osv","ecosystem":"AlmaLinux:9","package":"python3-unbound","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.24.2-3.el9_8.4"}]}],"bundled":2},{"source":"osv","ecosystem":"AlmaLinux:9","package":"unbound","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.24.2-3.el9_8.4"}]}],"bundled":2},{"source":"osv","ecosystem":"AlmaLinux:9","package":"unbound-devel","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.24.2-3.el9_8.4"}]}],"bundled":2},{"source":"osv","ecosystem":"AlmaLinux:9","package":"unbound-dracut","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.24.2-3.el9_8.4"}]}],"bundled":2},{"source":"osv","ecosystem":"AlmaLinux:9","package":"unbound-libs","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.24.2-3.el9_8.4"}]}],"bundled":2},{"source":"osv","ecosystem":"AlmaLinux:10","package":"python3-unbound","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.24.2-7.el10_2.4"}]}],"bundled":2},{"source":"osv","ecosystem":"AlmaLinux:10","package":"unbound","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.24.2-7.el10_2.4"}]}],"bundled":2},{"source":"osv","ecosystem":"AlmaLinux:10","package":"unbound-anchor","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.24.2-7.el10_2.4"}]}],"bundled":2},{"source":"osv","ecosystem":"AlmaLinux:10","package":"unbound-devel","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.24.2-7.el10_2.4"}]}],"bundled":2},{"source":"osv","ecosystem":"AlmaLinux:10","package":"unbound-dracut","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.24.2-7.el10_2.4"}]}],"bundled":2},{"source":"osv","ecosystem":"AlmaLinux:10","package":"unbound-libs","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.24.2-7.el10_2.4"}]}],"bundled":2},{"source":"osv","ecosystem":"AlmaLinux:10","package":"unbound-utils","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.24.2-7.el10_2.4"}]}],"bundled":2},{"source":"osv","ecosystem":"Azure Linux:3","package":"unbound","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.25.2-1"}]}]},{"source":"osv","ecosystem":"Debian:12","package":"unbound","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.17.1-2","1.17.1-2+deb12u1","1.17.1-2+deb12u2","1.17.1-2+deb12u3","1.17.1-2+deb12u4","1.17.1-2+loong64","1.18.0-1","1.18.0-2","1.19.1-1","1.19.2-1","1.20.0-1","1.21.1-1","1.22.0-1","1.22.0-2","1.23.1-1","1.24.0-1","1.24.0-2","1.24.1-1","1.24.1-2","1.24.2-1","1.25.0-1","1.25.1-1","1.25.2-1","1.26.0-1","1.26.0-2","1.26.1-1","1.26.2-1"]},{"source":"osv","ecosystem":"Debian:13","package":"unbound","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.26.1-0+deb13u1"}]}],"versions":["1.22.0-2","1.22.0-2+deb13u1","1.22.0-2+deb13u2","1.22.0-2+deb13u3","1.23.1-1","1.24.0-1","1.24.0-2","1.24.1-1","1.24.1-2","1.24.2-1","1.25.0-1","1.25.1-1","1.25.2-1","1.26.0-1","1.26.0-2"]},{"source":"osv","ecosystem":"Debian:14","package":"unbound","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.25.2-1"}]}],"versions":["1.22.0-2","1.23.1-1","1.24.0-1","1.24.0-2","1.24.1-1","1.24.1-2","1.24.2-1","1.25.0-1","1.25.1-1"]},{"source":"osv","ecosystem":"Mageia:10","package":"unbound","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.25.2-1.mga10"}]}],"bundled":24},{"source":"osv","ecosystem":"Mageia:9","package":"unbound","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.25.2-1.mga9"}]}],"bundled":24},{"source":"osv","ecosystem":"Mageia:10","package":"unbound","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.26.1-1.mga10"}]}],"bundled":34},{"source":"osv","ecosystem":"Mageia:9","package":"unbound","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.26.1-1.mga9"}]}],"bundled":34},{"source":"osv","ecosystem":"Red Hat:hummingbird:1","package":"python3-unbound","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:1.25.2-0.1.hum1"}]}],"bundled":23},{"source":"osv","ecosystem":"Red Hat:hummingbird:1","package":"unbound","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:1.25.2-0.1.hum1"}]}],"bundled":23},{"source":"osv","ecosystem":"Red Hat:hummingbird:1","package":"unbound-anchor","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:1.25.2-0.1.hum1"}]}],"bundled":23},{"source":"osv","ecosystem":"Red Hat:hummingbird:1","package":"unbound-devel","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:1.25.2-0.1.hum1"}]}],"bundled":23},{"source":"osv","ecosystem":"Red Hat:hummingbird:1","package":"unbound-dracut","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:1.25.2-0.1.hum1"}]}],"bundled":23},{"source":"osv","ecosystem":"Red Hat:hummingbird:1","package":"unbound-libs","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:1.25.2-0.1.hum1"}]}],"bundled":23},{"source":"osv","ecosystem":"Red Hat:hummingbird:1","package":"unbound-munin","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:1.25.2-0.1.hum1"}]}],"bundled":23},{"source":"osv","ecosystem":"Red Hat:hummingbird:1","package":"unbound-utils","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:1.25.2-0.1.hum1"}]}],"bundled":23},{"source":"osv","ecosystem":"Red Hat:enterprise_linux:9::appstream","package":"python3-unbound","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:1.24.2-3.el9_8.4"}]}],"bundled":2},{"source":"osv","ecosystem":"Red Hat:enterprise_linux:9::appstream","package":"python3-unbound-debuginfo","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:1.24.2-3.el9_8.4"}]}],"bundled":2},{"source":"osv","ecosystem":"Red Hat:enterprise_linux:9::appstream","package":"unbound","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:1.24.2-3.el9_8.4"}]}],"bundled":2},{"source":"osv","ecosystem":"Red Hat:enterprise_linux:9::appstream","package":"unbound-debuginfo","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:1.24.2-3.el9_8.4"}]}],"bundled":2},{"source":"osv","ecosystem":"Red Hat:enterprise_linux:9::appstream","package":"unbound-debugsource","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:1.24.2-3.el9_8.4"}]}],"bundled":2},{"source":"osv","ecosystem":"Red Hat:enterprise_linux:9::appstream","package":"unbound-dracut","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:1.24.2-3.el9_8.4"}]}],"bundled":2},{"source":"osv","ecosystem":"Red Hat:enterprise_linux:9::appstream","package":"unbound-libs","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:1.24.2-3.el9_8.4"}]}],"bundled":2},{"source":"osv","ecosystem":"Red Hat:enterprise_linux:9::appstream","package":"unbound-libs-debuginfo","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:1.24.2-3.el9_8.4"}]}],"bundled":2},{"source":"osv","ecosystem":"Red Hat:enterprise_linux:9::crb","package":"python3-unbound-debuginfo","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:1.24.2-3.el9_8.4"}]}],"bundled":2},{"source":"osv","ecosystem":"Red Hat:enterprise_linux:9::crb","package":"unbound-debuginfo","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:1.24.2-3.el9_8.4"}]}],"bundled":2},{"source":"osv","ecosystem":"Red Hat:enterprise_linux:9::crb","package":"unbound-debugsource","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:1.24.2-3.el9_8.4"}]}],"bundled":2},{"source":"osv","ecosystem":"Red Hat:enterprise_linux:9::crb","package":"unbound-devel","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:1.24.2-3.el9_8.4"}]}],"bundled":2},{"source":"osv","ecosystem":"Red Hat:enterprise_linux:9::crb","package":"unbound-libs-debuginfo","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:1.24.2-3.el9_8.4"}]}],"bundled":2},{"source":"osv","ecosystem":"Red Hat:enterprise_linux:10.2","package":"python3-unbound","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:1.24.2-7.el10_2.4"}]}],"bundled":2},{"source":"osv","ecosystem":"Red Hat:enterprise_linux:10.2","package":"python3-unbound-debuginfo","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:1.24.2-7.el10_2.4"}]}],"bundled":2},{"source":"osv","ecosystem":"Red Hat:enterprise_linux:10.2","package":"unbound","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:1.24.2-7.el10_2.4"}]}],"bundled":2},{"source":"osv","ecosystem":"Red Hat:enterprise_linux:10.2","package":"unbound-anchor","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:1.24.2-7.el10_2.4"}]}],"bundled":2},{"source":"osv","ecosystem":"Red Hat:enterprise_linux:10.2","package":"unbound-anchor-debuginfo","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:1.24.2-7.el10_2.4"}]}],"bundled":2},{"source":"osv","ecosystem":"Red Hat:enterprise_linux:10.2","package":"unbound-debuginfo","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:1.24.2-7.el10_2.4"}]}],"bundled":2},{"source":"osv","ecosystem":"Red Hat:enterprise_linux:10.2","package":"unbound-debugsource","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:1.24.2-7.el10_2.4"}]}],"bundled":2},{"source":"osv","ecosystem":"Red Hat:enterprise_linux:10.2","package":"unbound-dracut","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:1.24.2-7.el10_2.4"}]}],"bundled":2},{"source":"osv","ecosystem":"Red Hat:enterprise_linux:10.2","package":"unbound-libs","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:1.24.2-7.el10_2.4"}]}],"bundled":2},{"source":"osv","ecosystem":"Red Hat:enterprise_linux:10.2","package":"unbound-libs-debuginfo","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:1.24.2-7.el10_2.4"}]}],"bundled":2},{"source":"osv","ecosystem":"Red Hat:enterprise_linux:10.2","package":"unbound-utils","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:1.24.2-7.el10_2.4"}]}],"bundled":2},{"source":"osv","ecosystem":"Red Hat:enterprise_linux:10.2","package":"unbound-utils-debuginfo","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:1.24.2-7.el10_2.4"}]}],"bundled":2},{"source":"osv","ecosystem":"Red Hat:enterprise_linux:10.2","package":"unbound-devel","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:1.24.2-7.el10_2.4"}]}],"bundled":2},{"source":"osv","ecosystem":"Rocky Linux:9","package":"unbound","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:1.24.2-3.el9_8.4"}]}],"bundled":2},{"source":"osv","ecosystem":"Rocky Linux:10","package":"unbound","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:1.24.2-7.el10_2.4"}]}],"bundled":2},{"source":"osv","ecosystem":"Root:Debian:11","package":"unbound","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.13.1-1+deb11u7.aikido.6"}]}]},{"source":"osv","ecosystem":"Root:Debian:11","package":"rootio-unbound","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.13.1-1+deb11u7.aikido.6"}]}]},{"source":"osv","ecosystem":"Root:Debian:12","package":"unbound","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.17.1-2+deb12u4.aikido.3"},{"fixed":"1.17.1-2+deb12u4.aikido.4"},{"fixed":"1.17.1-2+deb12u4.aikido.5"}]}]},{"source":"osv","ecosystem":"Root:Debian:12","package":"rootio-unbound","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.17.1-2+deb12u4.aikido.3"},{"fixed":"1.17.1-2+deb12u4.aikido.4"},{"fixed":"1.17.1-2+deb12u4.aikido.5"}]}]},{"source":"osv","ecosystem":"SUSE:Linux Micro 6.2","package":"unbound","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.25.2-160000.1.1"}]}],"bundled":24},{"source":"osv","ecosystem":"SUSE:Linux Enterprise Server 16.0","package":"unbound","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.25.2-160000.1.1"}]}],"bundled":24},{"source":"osv","ecosystem":"SUSE:Linux Enterprise Server for SAP applications 16.0","package":"unbound","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.25.2-160000.1.1"}]}],"bundled":24},{"source":"osv","ecosystem":"SUSE:Linux Enterprise Server 16.0","package":"unbound","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.25.2-160000.1.1"}]}],"bundled":24},{"source":"osv","ecosystem":"SUSE:Linux Enterprise Server for SAP applications 16.0","package":"unbound","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.25.2-160000.1.1"}]}],"bundled":24},{"source":"osv","ecosystem":"Ubuntu:26.10","package":"unbound","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.25.1-1ubuntu3.1"}]}],"versions":["1.24.2-1ubuntu2","1.25.1-1ubuntu1","1.25.1-1ubuntu3"]},{"source":"osv","ecosystem":"Ubuntu:26.04:LTS","package":"unbound","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.24.2-1ubuntu2.4"}]}],"versions":["1.22.0-2ubuntu2","1.22.0-2ubuntu4","1.24.2-1ubuntu1","1.24.2-1ubuntu2","1.24.2-1ubuntu2.1","1.24.2-1ubuntu2.2","1.24.2-1ubuntu2.3"]},{"source":"osv","ecosystem":"Ubuntu:Pro:14.04:LTS","package":"unbound","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.4.22-1ubuntu4.14.04.3+esm5"}]}],"versions":["1.4.20-1","1.4.21-1","1.4.21-1ubuntu1","1.4.21-1ubuntu2","1.4.22-1ubuntu1","1.4.22-1ubuntu2","1.4.22-1ubuntu3","1.4.22-1ubuntu4","1.4.22-1ubuntu4.14.04.1","1.4.22-1ubuntu4.14.04.2","1.4.22-1ubuntu4.14.04.3","1.4.22-1ubuntu4.14.04.3+esm1","1.4.22-1ubuntu4.14.04.3+esm2","1.4.22-1ubuntu4.14.04.3+esm3","1.4.22-1ubuntu4.14.04.3+esm4"],"bundled":10},{"source":"osv","ecosystem":"Ubuntu:Pro:16.04:LTS","package":"unbound","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.5.8-1ubuntu1.1+esm5"}]}],"versions":["1.4.22-1ubuntu6","1.5.7-1ubuntu1","1.5.7-1ubuntu2","1.5.8-1ubuntu1","1.5.8-1ubuntu1.1","1.5.8-1ubuntu1.1+esm1","1.5.8-1ubuntu1.1+esm2","1.5.8-1ubuntu1.1+esm3","1.5.8-1ubuntu1.1+esm4"],"bundled":10},{"source":"osv","ecosystem":"Ubuntu:Pro:18.04:LTS","package":"unbound","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.6.7-1ubuntu2.6+esm6"}]}],"versions":["1.6.5-1","1.6.7-1","1.6.7-1build1","1.6.7-1ubuntu1","1.6.7-1ubuntu2","1.6.7-1ubuntu2.1","1.6.7-1ubuntu2.2","1.6.7-1ubuntu2.3","1.6.7-1ubuntu2.4","1.6.7-1ubuntu2.5","1.6.7-1ubuntu2.6","1.6.7-1ubuntu2.6+esm2","1.6.7-1ubuntu2.6+esm3","1.6.7-1ubuntu2.6+esm4","1.6.7-1ubuntu2.6+esm5"],"bundled":10},{"source":"osv","ecosystem":"Ubuntu:Pro:20.04:LTS","package":"unbound","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.9.4-2ubuntu1.11+esm3"}]}],"versions":["1.9.0-2ubuntu1","1.9.0-2ubuntu2","1.9.4-2","1.9.4-2ubuntu1","1.9.4-2ubuntu1.1","1.9.4-2ubuntu1.2","1.9.4-2ubuntu1.3","1.9.4-2ubuntu1.4","1.9.4-2ubuntu1.5","1.9.4-2ubuntu1.6","1.9.4-2ubuntu1.8","1.9.4-2ubuntu1.9","1.9.4-2ubuntu1.11","1.9.4-2ubuntu1.11+esm1","1.9.4-2ubuntu1.11+esm2"],"bundled":10},{"source":"osv","ecosystem":"Ubuntu:22.04:LTS","package":"unbound","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.13.1-1ubuntu5.17"}]}],"versions":["1.13.1-1ubuntu1","1.13.1-1ubuntu3","1.13.1-1ubuntu5","1.13.1-1ubuntu5.1","1.13.1-1ubuntu5.2","1.13.1-1ubuntu5.3","1.13.1-1ubuntu5.4","1.13.1-1ubuntu5.5","1.13.1-1ubuntu5.7","1.13.1-1ubuntu5.8","1.13.1-1ubuntu5.10","1.13.1-1ubuntu5.11","1.13.1-1ubuntu5.12","1.13.1-1ubuntu5.13","1.13.1-1ubuntu5.14","1.13.1-1ubuntu5.15","1.13.1-1ubuntu5.16"],"bundled":10},{"source":"osv","ecosystem":"Ubuntu:24.04:LTS","package":"unbound","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.19.2-1ubuntu3.12"}]}],"versions":["1.17.1-2","1.18.0-2ubuntu1","1.18.0-2ubuntu2","1.19.1-1ubuntu1","1.19.2-1ubuntu1","1.19.2-1ubuntu3","1.19.2-1ubuntu3.1","1.19.2-1ubuntu3.2","1.19.2-1ubuntu3.3","1.19.2-1ubuntu3.4","1.19.2-1ubuntu3.5","1.19.2-1ubuntu3.6","1.19.2-1ubuntu3.7","1.19.2-1ubuntu3.8","1.19.2-1ubuntu3.9","1.19.2-1ubuntu3.10"],"bundled":10},{"source":"osv","ecosystem":"Ubuntu:26.04:LTS","package":"unbound","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.24.2-1ubuntu2.4"}]}],"versions":["1.22.0-2ubuntu2","1.22.0-2ubuntu4","1.24.2-1ubuntu1","1.24.2-1ubuntu2","1.24.2-1ubuntu2.1","1.24.2-1ubuntu2.2","1.24.2-1ubuntu2.3"],"bundled":10},{"source":"osv","ecosystem":"openSUSE:Tumbleweed","package":"unbound","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.25.2-1.1"}]}],"bundled":24},{"source":"osv","ecosystem":"openSUSE:Leap 16.0","package":"unbound","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.25.2-160000.1.1"}]}],"bundled":24}],"products":[{"vendor":"nlnet labs","product":"unbound"},{"vendor":"nlnetlabs","product":"unbound"}],"references":[{"url":"https://www.nlnetlabs.nl/downloads/unbound/CVE-2026-55973.txt","tags":["vendor-advisory","Vendor Advisory","advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-55973","tags":["web","advisory"]},{"url":"https://github.com/advisories/GHSA-g479-fg97-pf5w"},{"url":"https://security.alpinelinux.org/vuln/CVE-2026-55973","tags":["advisory"]},{"url":"https://access.redhat.com/errata/RHSA-2026:55841","tags":["advisory"]},{"url":"https://access.redhat.com/security/cve/CVE-2026-44690","tags":["report"]},{"url":"https://access.redhat.com/security/cve/CVE-2026-55973","tags":["report"]},{"url":"https://bugzilla.redhat.com/2503063","tags":["report"]},{"url":"https://bugzilla.redhat.com/2503075","tags":["report"]},{"url":"https://errata.almalinux.org/9/ALSA-2026-55841.html","tags":["advisory"]},{"url":"https://access.redhat.com/errata/RHSA-2026:55892","tags":["advisory"]},{"url":"https://errata.almalinux.org/10/ALSA-2026-55892.html","tags":["advisory"]},{"url":"https://security-tracker.debian.org/tracker/CVE-2026-55973","tags":["advisory"]},{"url":"https://advisories.mageia.org/MGASA-2026-0316.html","tags":["advisory"]},{"url":"https://bugs.mageia.org/show_bug.cgi?id=35991","tags":["report"]},{"url":"https://community.nlnetlabs.nl/t/unbound-1-25-2-released/3430","tags":["web","report"]},{"url":"https://www.openwall.com/lists/oss-security/2026/07/22/7","tags":["web"]},{"url":"https://nlnetlabs.nl/projects/unbound/security-advisories/","tags":["advisory","article"]},{"url":"https://advisories.mageia.org/MGASA-2026-0451.html","tags":["advisory"]},{"url":"https://bugs.mageia.org/show_bug.cgi?id=36346","tags":["report"]},{"url":"https://access.redhat.com/errata/RHSA-2026:43588","tags":["advisory"]},{"url":"https://images.redhat.com/","tags":["article"]},{"url":"https://access.redhat.com/security/cve/CVE-2026-40691","tags":["report"]},{"url":"https://access.redhat.com/security/updates/classification/","tags":["article"]},{"url":"https://access.redhat.com/security/cve/CVE-2026-55717","tags":["report"]},{"url":"https://access.redhat.com/security/cve/CVE-2026-56416","tags":["report"]},{"url":"https://access.redhat.com/security/cve/CVE-2026-50251","tags":["report"]},{"url":"https://access.redhat.com/security/cve/CVE-2026-41637","tags":["report"]},{"url":"https://access.redhat.com/security/cve/CVE-2026-52863","tags":["report"]},{"url":"https://access.redhat.com/security/cve/CVE-2026-55990","tags":["report"]},{"url":"https://access.redhat.com/security/cve/CVE-2026-42955","tags":["report"]},{"url":"https://access.redhat.com/security/cve/CVE-2026-55708","tags":["report"]},{"url":"https://access.redhat.com/security/cve/CVE-2026-50243","tags":["report"]},{"url":"https://access.redhat.com/security/cve/CVE-2026-50252","tags":["report"]},{"url":"https://access.redhat.com/security/cve/CVE-2026-46582","tags":["report"]},{"url":"https://access.redhat.com/security/cve/CVE-2026-56444","tags":["report"]},{"url":"https://access.redhat.com/security/cve/CVE-2026-55991","tags":["report"]},{"url":"https://access.redhat.com/security/cve/CVE-2026-50046","tags":["report"]},{"url":"https://access.redhat.com/security/cve/CVE-2026-54478","tags":["report"]},{"url":"https://access.redhat.com/security/cve/CVE-2026-14586","tags":["report"]},{"url":"https://access.redhat.com/security/cve/CVE-2026-50248","tags":["report"]},{"url":"https://access.redhat.com/security/cve/CVE-2026-44687","tags":["report"]},{"url":"https://access.redhat.com/security/cve/CVE-2026-50045","tags":["report"]},{"url":"https://access.redhat.com/security/cve/CVE-2026-32665","tags":["report"]},{"url":"https://security.access.redhat.com/data/csaf/v2/advisories/2026/rhsa-2026_43588.json","tags":["advisory"]},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=2506128","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-14586","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-14586","tags":["advisory"]},{"url":"https://www.nlnetlabs.nl/downloads/unbound/CVE-2026-14586.txt","tags":["article"]},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=2503060","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-32665","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-32665","tags":["advisory"]},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=2503062","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-40691","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-40691","tags":["advisory"]},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=2506143","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-41637","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-41637","tags":["advisory"]},{"url":"https://www.nlnetlabs.nl/downloads/unbound/CVE-2026-41637.txt","tags":["article"]},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=2506144","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-42955","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-42955","tags":["advisory"]},{"url":"https://www.nlnetlabs.nl/downloads/unbound/CVE-2026-42955.txt","tags":["article"]},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=2506130","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-44687","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-44687","tags":["advisory"]},{"url":"https://www.nlnetlabs.nl/downloads/unbound/CVE-2026-44687.txt","tags":["article"]},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=2503063","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-44690","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-44690","tags":["advisory"]},{"url":"https://www.nlnetlabs.nl/downloads/unbound/CVE-2026-44690.txt","tags":["article"]},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=2506139","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-46582","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-46582","tags":["advisory"]},{"url":"https://www.nlnetlabs.nl/downloads/unbound/CVE-2026-46582.txt","tags":["article"]},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=2506136","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-50045","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-50045","tags":["advisory"]},{"url":"https://www.nlnetlabs.nl/downloads/unbound/CVE-2026-50045.txt","tags":["article"]},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=2506138","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-50046","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-50046","tags":["advisory"]},{"url":"https://www.nlnetlabs.nl/downloads/unbound/CVE-2026-50046.txt","tags":["article"]},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=2506132","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-50243","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-50243","tags":["advisory"]},{"url":"https://www.nlnetlabs.nl/downloads/unbound/CVE-2026-50243.txt","tags":["article"]},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=2506129","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-50248","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-50248","tags":["advisory"]},{"url":"https://www.nlnetlabs.nl/downloads/unbound/CVE-2026-50248.txt","tags":["article"]},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=2506150","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-50251","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-50251","tags":["advisory"]},{"url":"https://www.nlnetlabs.nl/downloads/unbound/CVE-2026-50251.txt","tags":["article"]},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=2506133","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-50252","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-50252","tags":["advisory"]},{"url":"https://www.nlnetlabs.nl/downloads/unbound/CVE-2026-50252.txt","tags":["article"]},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=2506141","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-52863","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-52863","tags":["advisory"]},{"url":"https://www.nlnetlabs.nl/downloads/unbound/CVE-2026-52863.txt","tags":["article"]},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=2506146","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-54478","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-54478","tags":["advisory"]},{"url":"https://www.nlnetlabs.nl/downloads/unbound/CVE-2026-54478.txt","tags":["article"]},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=2506131","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-55708","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-55708","tags":["advisory"]},{"url":"https://www.nlnetlabs.nl/downloads/unbound/CVE-2026-55708.txt","tags":["article"]},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=2506135","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-55717","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-55717","tags":["advisory"]},{"url":"https://www.nlnetlabs.nl/downloads/unbound/CVE-2026-55717.txt","tags":["article"]},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=2503075","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-55973","tags":["advisory","report"]},{"url":"https://nlnetlabs.nl/projects/unbound/download/#unbound-1-25-2","tags":["article"]},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=2506148","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-55990","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-55990","tags":["advisory"]},{"url":"https://www.nlnetlabs.nl/downloads/unbound/CVE-2026-55990.txt","tags":["article"]},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=2506147","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-55991","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-55991","tags":["advisory"]},{"url":"https://www.nlnetlabs.nl/downloads/unbound/CVE-2026-55991.txt","tags":["article"]},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=2506137","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-56416","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-56416","tags":["advisory"]},{"url":"https://www.nlnetlabs.nl/downloads/unbound/CVE-2026-56416.txt","tags":["article"]},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=2506142","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-56444","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-56444","tags":["advisory"]},{"url":"https://www.nlnetlabs.nl/downloads/unbound/CVE-2026-56444.txt","tags":["article"]},{"url":"https://access.redhat.com/security/updates/classification/#important","tags":["article"]},{"url":"https://security.access.redhat.com/data/csaf/v2/advisories/2026/rhsa-2026_55841.json","tags":["advisory"]},{"url":"https://security.access.redhat.com/data/csaf/v2/advisories/2026/rhsa-2026_55892.json","tags":["advisory"]},{"url":"https://errata.rockylinux.org/RLSA-2026:55841","tags":["advisory"]},{"url":"https://errata.rockylinux.org/RLSA-2026:55892","tags":["advisory"]},{"url":"https://www.suse.com/support/update/announcement/2026/suse-su-202623050-1/","tags":["advisory"]},{"url":"https://bugzilla.suse.com/1271873","tags":["report"]},{"url":"https://bugzilla.suse.com/1271874","tags":["report"]},{"url":"https://bugzilla.suse.com/1271875","tags":["report"]},{"url":"https://bugzilla.suse.com/1271876","tags":["report"]},{"url":"https://bugzilla.suse.com/1271877","tags":["report"]},{"url":"https://bugzilla.suse.com/1271878","tags":["report"]},{"url":"https://bugzilla.suse.com/1271879","tags":["report"]},{"url":"https://bugzilla.suse.com/1271880","tags":["report"]},{"url":"https://bugzilla.suse.com/1271881","tags":["report"]},{"url":"https://bugzilla.suse.com/1271882","tags":["report"]},{"url":"https://bugzilla.suse.com/1271883","tags":["report"]},{"url":"https://bugzilla.suse.com/1271884","tags":["report"]},{"url":"https://bugzilla.suse.com/1271886","tags":["report"]},{"url":"https://bugzilla.suse.com/1271887","tags":["report"]},{"url":"https://bugzilla.suse.com/1271888","tags":["report"]},{"url":"https://bugzilla.suse.com/1271889","tags":["report"]},{"url":"https://bugzilla.suse.com/1271890","tags":["report"]},{"url":"https://bugzilla.suse.com/1271891","tags":["report"]},{"url":"https://bugzilla.suse.com/1271892","tags":["report"]},{"url":"https://bugzilla.suse.com/1271893","tags":["report"]},{"url":"https://bugzilla.suse.com/1271894","tags":["report"]},{"url":"https://bugzilla.suse.com/1271895","tags":["report"]},{"url":"https://bugzilla.suse.com/1271896","tags":["report"]},{"url":"https://www.suse.com/security/cve/CVE-2026-14586","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-32665","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-40622","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-40691","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-41637","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-42955","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-44621","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-44687","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-44690","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-46582","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-50045","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-50046","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-50243","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-50248","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-50251","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-50252","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-54478","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-55708","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-55717","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-55973","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-55990","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-55991","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-56416","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-56444","tags":["web"]},{"url":"https://www.suse.com/support/update/announcement/2026/suse-su-202623215-1/","tags":["advisory"]},{"url":"https://www.suse.com/support/update/announcement/2026/suse-su-202623226-1/","tags":["advisory"]},{"url":"https://ubuntu.com/security/CVE-2026-55973","tags":["report"]},{"url":"https://ubuntu.com/security/notices/USN-8946-1","tags":["advisory"]},{"url":"https://ubuntu.com/security/notices/USN-8946-2","tags":["advisory"]},{"url":"https://ubuntu.com/security/CVE-2023-50387","tags":["report"]},{"url":"https://ubuntu.com/security/CVE-2023-50868","tags":["report"]},{"url":"https://ubuntu.com/security/CVE-2026-32665","tags":["report"]},{"url":"https://ubuntu.com/security/CVE-2026-40691","tags":["report"]},{"url":"https://ubuntu.com/security/CVE-2026-44690","tags":["report"]},{"url":"https://ubuntu.com/security/CVE-2026-50252","tags":["report"]},{"url":"https://ubuntu.com/security/CVE-2026-80225","tags":["report"]},{"url":"https://ubuntu.com/security/CVE-2026-81634","tags":["report"]},{"url":"https://ubuntu.com/security/CVE-2026-85501","tags":["report"]},{"url":"","tags":["advisory"]},{"url":"https://www.suse.com/security/cve/CVE-2026-52863","tags":["web"]}],"sources":{"cve":[{"id":"CVE-2026-55973","title":"'dns-error-reporting: yes' leads to stack buffer overflow","description":"In NLnet Labs Unbound 1.23.0 up to and including 1.25.1, when 'dns-error-reporting: yes' is set, the EDNS Report-Channel option (code 18) from the last upstream response is read and uses the option's length as the length of the agent domain. When a domain name check is performed on the agent domain, the returned lenght is not used and if the agent domain is followed by garbage, those bytes are moved onto the tail of the synthetic '_er.' report query name. That query name is later used in the iterator via a subquery to send out the DNS Error Report and when Unbound tries to walk that query name during 'find_closest_of_type()', it strips labels using the query name length rather than stopping at the embedded root, walks one byte past it, and feeds the first garbage byte to 'dname_query_hash()' as a label length writing over the stack variable 'labuf'. One ordinary upstream response from a delegated zone the attacker controls is sufficient to terminate the daemon.","status":"published","published":"2026-07-22T13:09:50.942Z","modified":"2026-07-22T14:06:00.025Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high","assessor":"cna"}],"cwes":["CWE-20"],"updated_at":"2026-11-02T14:20:11.925815Z"}],"euvd":[{"id":"EUVD-2026-47681","description":"In NLnet Labs Unbound 1.23.0 up to and including 1.25.1, when 'dns-error-reporting: yes' is set, the EDNS Report-Channel option (code 18) from the last upstream response is read and uses the option's length as the length of the agent domain. When a domain name check is performed on the agent domain, the returned lenght is not used and if the agent domain is followed by garbage, those bytes are moved onto the tail of the synthetic '_er.' report query name. That query name is later used in the iterator via a subquery to send out the DNS Error Report and when Unbound tries to walk that query name during 'find_closest_of_type()', it strips labels using the query name length rather than stopping at the embedded root, walks one byte past it, and feeds the first garbage byte to 'dname_query_hash()' as a label length writing over the stack variable 'labuf'. One ordinary upstream response from a delegated zone the attacker controls is sufficient to terminate the daemon.","status":"published","published":"2026-07-22T13:09:50Z","modified":"2026-07-22T14:06:00Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high"}],"updated_at":"2026-11-02T18:19:46.391735Z"}],"ghsa":[{"id":"GHSA-g479-fg97-pf5w","title":"In NLnet Labs Unbound 1.23.0 up to and including 1.25.1, when 'dns-error-reporting: yes' is set,...","description":"In NLnet Labs Unbound 1.23.0 up to and including 1.25.1, when 'dns-error-reporting: yes' is set, the EDNS Report-Channel option (code 18) from the last upstream response is read and uses the option's length as the length of the agent domain. When a domain name check is performed on the agent domain, the returned lenght is not used and if the agent domain is followed by garbage, those bytes are moved onto the tail of the synthetic '_er.' report query name. That query name is later used in the iterator via a subquery to send out the DNS Error Report and when Unbound tries to walk that query name during 'find_closest_of_type()', it strips labels using the query name length rather than stopping at the embedded root, walks one byte past it, and feeds the first garbage byte to 'dname_query_hash()' as a label length writing over the stack variable 'labuf'. One ordinary upstream response from a delegated zone the attacker controls is sufficient to terminate the daemon.","status":"published","published":"2026-07-22T15:31:25Z","modified":"2026-07-22T15:31:26Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high"}],"cwes":["CWE-20"],"updated_at":"2026-11-02T15:09:38.678188Z"}],"nvd":[{"id":"CVE-2026-55973","description":"In NLnet Labs Unbound 1.23.0 up to and including 1.25.1, when 'dns-error-reporting: yes' is set, the EDNS Report-Channel option (code 18) from the last upstream response is read and uses the option's length as the length of the agent domain. When a domain name check is performed on the agent domain, the returned lenght is not used and if the agent domain is followed by garbage, those bytes are moved onto the tail of the synthetic '_er.' report query name. That query name is later used in the iterator via a subquery to send out the DNS Error Report and when Unbound tries to walk that query name during 'find_closest_of_type()', it strips labels using the query name length rather than stopping at the embedded root, walks one byte past it, and feeds the first garbage byte to 'dname_query_hash()' as a label length writing over the stack variable 'labuf'. One ordinary upstream response from a delegated zone the attacker controls is sufficient to terminate the daemon.","status":"published","published":"2026-07-22T14:17:21.663Z","modified":"2026-10-24T13:10:00.147Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high","assessor":"secondary"}],"cwes":["CWE-20"],"updated_at":"2026-11-02T14:12:32.089897Z"}],"osv":[{"id":"ALPINE-CVE-2026-55973","description":"In NLnet Labs Unbound 1.23.0 up to and including 1.25.1, when 'dns-error-reporting: yes' is set, the EDNS Report-Channel option (code 18) from the last upstream response is read and uses the option's length as the length of the agent domain. When a domain name check is performed on the agent domain, the returned lenght is not used and if the agent domain is followed by garbage, those bytes are moved onto the tail of the synthetic '_er.' report query name. That query name is later used in the iterator via a subquery to send out the DNS Error Report and when Unbound tries to walk that query name during 'find_closest_of_type()', it strips labels using the query name length rather than stopping at the embedded root, walks one byte past it, and feeds the first garbage byte to 'dname_query_hash()' as a label length writing over the stack variable 'labuf'. One ordinary upstream response from a delegated zone the attacker controls is sufficient to terminate the daemon.","status":"published","published":"2026-07-22T14:17:21.663Z","modified":"2026-10-01T02:17:49.349430178Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high"}],"updated_at":"2026-11-02T15:27:50.764331Z"},{"id":"CVE-2026-55973","description":"In NLnet Labs Unbound 1.23.0 up to and including 1.25.1, when 'dns-error-reporting: yes' is set, the EDNS Report-Channel option (code 18) from the last upstream response is read and uses the option's length as the length of the agent domain. When a domain name check is performed on the agent domain, the returned lenght is not used and if the agent domain is followed by garbage, those bytes are moved onto the tail of the synthetic '_er.' report query name. That query name is later used in the iterator via a subquery to send out the DNS Error Report and when Unbound tries to walk that query name during 'find_closest_of_type()', it strips labels using the query name length rather than stopping at the embedded root, walks one byte past it, and feeds the first garbage byte to 'dname_query_hash()' as a label length writing over the stack variable 'labuf'. One ordinary upstream response from a delegated zone the attacker controls is sufficient to terminate the daemon.","status":"published","published":"2026-07-22T14:17:21.663Z","modified":"2026-10-26T02:30:26.270075957Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high"}],"updated_at":"2026-11-02T15:45:11.609219Z"},{"id":"DEBIAN-CVE-2026-55973","description":"In NLnet Labs Unbound 1.23.0 up to and including 1.25.1, when 'dns-error-reporting: yes' is set, the EDNS Report-Channel option (code 18) from the last upstream response is read and uses the option's length as the length of the agent domain. When a domain name check is performed on the agent domain, the returned lenght is not used and if the agent domain is followed by garbage, those bytes are moved onto the tail of the synthetic '_er.' report query name. That query name is later used in the iterator via a subquery to send out the DNS Error Report and when Unbound tries to walk that query name during 'find_closest_of_type()', it strips labels using the query name length rather than stopping at the embedded root, walks one byte past it, and feeds the first garbage byte to 'dname_query_hash()' as a label length writing over the stack variable 'labuf'. One ordinary upstream response from a delegated zone the attacker controls is sufficient to terminate the daemon.","status":"published","published":"2026-07-22T14:17:21.663Z","modified":"2026-10-25T10:00:58.008299307Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high"}],"updated_at":"2026-11-02T15:45:57.590991Z"},{"id":"RHSA-2026:43588","title":"Red Hat Security Advisory: Red Hat Hardened Images RPMs bug fix and enhancement update","status":"published","published":"2026-07-23T10:14:32Z","modified":"2026-10-20T10:09:15Z","cvss":[{"version":"3.1","score":8.6,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:N/I:H/A:N","level":"high"}],"updated_at":"2026-11-02T15:53:20.491441Z"},{"id":"RHSA-2026:55841","title":"Red Hat Security Advisory: unbound security update","status":"published","published":"2026-08-18T10:21:14Z","modified":"2026-10-19T10:04:29Z","cvss":[{"version":"3.1","score":8.6,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:N/I:H/A:N","level":"high"}],"updated_at":"2026-11-02T15:53:21.457353Z"},{"id":"RHSA-2026:55892","title":"Red Hat Security Advisory: unbound security update","status":"published","published":"2026-08-18T10:21:19Z","modified":"2026-10-19T10:04:30Z","cvss":[{"version":"3.1","score":8.6,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:N/I:H/A:N","level":"high"}],"updated_at":"2026-11-02T15:53:21.457353Z"},{"id":"RLSA-2026:55841","title":"Important: unbound security update","description":"The unbound packages provide a validating, recursive, and caching DNS or DNSSEC resolver. \n\nSecurity Fix(es):\n\n* unbound: Unbound: Cache poisoning via insufficient RRSIG.Labels validation and premature cache writes (CVE-2026-44690)\n\n* unbound: Unbound: Denial of Service via malformed EDNS Report-Channel option (CVE-2026-55973)\n\nFor more details about the security issue(s), including the impact, a CVSS score, acknowledgments, and other related information, refer to the CVE page(s) listed in the References section.","status":"published","published":"2026-08-18T06:04:25.43626Z","modified":"2026-08-18T06:30:07.519767583Z","cvss":[{"version":"3.1","score":8.6,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:N/I:H/A:N","level":"high"}],"updated_at":"2026-11-02T15:53:26.111232Z"},{"id":"RLSA-2026:55892","title":"Important: unbound security update","description":"The unbound packages provide a validating, recursive, and caching DNS or DNSSEC resolver. \n\nSecurity Fix(es):\n\n* unbound: Unbound: Cache poisoning via insufficient RRSIG.Labels validation and premature cache writes (CVE-2026-44690)\n\n* unbound: Unbound: Denial of Service via malformed EDNS Report-Channel option (CVE-2026-55973)\n\nFor more details about the security issue(s), including the impact, a CVSS score, acknowledgments, and other related information, refer to the CVE page(s) listed in the References section.","status":"published","published":"2026-08-18T12:07:31.722662Z","modified":"2026-08-18T12:30:03.297036566Z","cvss":[{"version":"3.1","score":8.6,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:N/I:H/A:N","level":"high"}],"updated_at":"2026-11-02T15:53:26.111232Z"},{"id":"UBUNTU-CVE-2026-55973","description":"In NLnet Labs Unbound 1.23.0 up to and including 1.25.1, when 'dns-error-reporting: yes' is set, the EDNS Report-Channel option (code 18) from the last upstream response is read and uses the option's length as the length of the agent domain. When a domain name check is performed on the agent domain, the returned lenght is not used and if the agent domain is followed by garbage, those bytes are moved onto the tail of the synthetic '_er.' report query name. That query name is later used in the iterator via a subquery to send out the DNS Error Report and when Unbound tries to walk that query name during 'find_closest_of_type()', it strips labels using the query name length rather than stopping at the embedded root, walks one byte past it, and feeds the first garbage byte to 'dname_query_hash()' as a label length writing over the stack variable 'labuf'. One ordinary upstream response from a delegated zone the attacker controls is sufficient to terminate the daemon.","status":"published","published":"2026-07-22T14:17:00Z","modified":"2026-11-11T09:37:19.327741117Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high"}],"updated_at":"2026-11-11T10:02:12.477481Z"},{"id":"ALSA-2026:55841","title":"Important: unbound security update","description":"The unbound packages provide a validating, recursive, and caching DNS or DNSSEC resolver.   \n\nSecurity Fix(es):  \n\n  * unbound: Unbound: Cache poisoning via insufficient RRSIG.Labels validation and premature cache writes (CVE-2026-44690)\n  * unbound: Unbound: Denial of Service via malformed EDNS Report-Channel option (CVE-2026-55973)\n\n\nFor more details about the security issue(s), including the impact, a CVSS score, acknowledgments, and other related information, refer to the CVE page(s) listed in the References section.\n","status":"published","published":"2026-08-17T00:00:00Z","modified":"2026-10-29T11:32:36.388327535Z","updated_at":"2026-11-02T15:27:54.753319Z"},{"id":"ALSA-2026:55892","title":"Important: unbound security update","description":"The unbound packages provide a validating, recursive, and caching DNS or DNSSEC resolver.   \n\nSecurity Fix(es):  \n\n  * unbound: Unbound: Cache poisoning via insufficient RRSIG.Labels validation and premature cache writes (CVE-2026-44690)\n  * unbound: Unbound: Denial of Service via malformed EDNS Report-Channel option (CVE-2026-55973)\n\n\nFor more details about the security issue(s), including the impact, a CVSS score, acknowledgments, and other related information, refer to the CVE page(s) listed in the References section.\n","status":"published","published":"2026-08-17T00:00:00Z","modified":"2026-10-29T11:30:38.459703778Z","updated_at":"2026-11-02T15:27:54.753319Z"},{"id":"AZL-92919","title":"CVE-2026-55973 affecting package unbound for versions less than 1.25.2-1","description":"In NLnet Labs Unbound 1.23.0 up to and including 1.25.1, when 'dns-error-reporting: yes' is set, the EDNS Report-Channel option (code 18) from the last upstream response is read and uses the option's length as the length of the agent domain. When a domain name check is performed on the agent domain, the returned lenght is not used and if the agent domain is followed by garbage, those bytes are moved onto the tail of the synthetic '_er.' report query name. That query name is later used in the iterator via a subquery to send out the DNS Error Report and when Unbound tries to walk that query name during 'find_closest_of_type()', it strips labels using the query name length rather than stopping at the embedded root, walks one byte past it, and feeds the first garbage byte to 'dname_query_hash()' as a label length writing over the stack variable 'labuf'. One ordinary upstream response from a delegated zone the attacker controls is sufficient to terminate the daemon.","status":"published","published":"2026-07-22T14:17:21Z","modified":"2026-08-28T17:56:32.625527Z","updated_at":"2026-11-02T15:28:11.723718Z"},{"id":"MGASA-2026-0316","title":"Updated unbound packages fix security vulnerabilities","description":"Unbound packages updated to version 1.25.2 which incorporates a number\nof security and bug fixes.\n","status":"published","published":"2026-08-03T18:47:23Z","modified":"2026-08-03T19:00:05.516020211Z","updated_at":"2026-11-02T15:49:43.795591Z"},{"id":"MGASA-2026-0451","title":"Updated unbound packages fixes security vulnerabilities","description":"Heap buffer overflow and possible Remote Code Execution when digesting\nDNSKEY\nPossible heap buffer overflow during DNSSEC canonicalization\nCNAME synthesis could lead to heap corruption\nPossible ZONEMD verification bypass window\nUse-after-free in DoQ stream output buffer on reset re-transmission\nPossible degradation of service from continuous queries on the same\nTCP/DoT connection\nUse-after-free in DoH stream cleanup code path\nRetrap: Novel Vulnerabilities to launch Algorithmic Complexity Attacks\non DNSSEC\n'serve-expired' can bypass Unbound 'wait-limit'\nRemote DNS-over-QUIC denial of service due to 'quic-size' budget bypass\nPacket of death for DNSCrypt over TCP\nCross-zone wildcard cache poisoning via RRSIG.labels manipulation\n'dns-error-reporting: yes' leads to stack buffer overflow\nAssertion in libngtcp2 when under pressure in high concurrency\nDNS-over-QUIC environments\nLibunbound applications configured with 'unwanted-reply-threshold' could\neventually be abruptly terminated\n'max-global-quota' reset by DNSSEC validation restarts\nPossible heap use-after-free in an error path when a DoT forwarded query\nis jostled out\n'response-ip'/'rpz' can rewrite BOGUS answers instead of returning\nSERVFAIL\nBOGUS configured primary hostname accepted for XFR in auth/rpz zones\nDate:\nAttacker supplied '0.0.0.0'/'::' glue triggers defensive full-cache\nflush\nPossible cache poisoning attack by mapping source port population per\nthread\nMemory corruption could lead to crash and denial of service\n'serve-expired-client-timeout' and 'response-ip' CNAME redirect could\nlead to a crash\nPacket of death for a DNSCrypt misconfigured Unbound\nRemote DNS-over-QUIC (DoQ) flow-control assertion failure in libngtcp2\nPossible heap buffer overflow when validator canonicalizes RDATA that\ncontains domain name\nDegradation of resolution service when 'discard-timeout' and\n'serve-expired-client-timeout' are combined in unusual configuration\nDegradation of resolution service from improperly accounted\nclient-terminated DNS-over-QUIC queries\nExtra fix for CVE-2026-40622 to also clamp the TTL of A/AAAA records\ndisallowing a one-time 'ghost domain' delegation renewal via glue\nrecords\nOff-by-one error in 'harden-below-nxdomain' logic can shadow a\nstub/forward zone by a legitimate parent's NXDOMAIN\nA wildcard replay, as another piece of data, triggers poisoning in the\nserve expired reply path\nDNS Cookie bypass when combined with proxy-protocol use\nPrivacy/configuration issue when adding local data in views through\n'unbound-control'\nPossible arbitrary code execution during DNSSEC validation\nHeap overflow with multiple NSID, COOKIE, PADDING EDNS options\nCrash during DNSSEC validation of malicious content\nDate:\nPacket of death with DNSCrypt\nAnother \"ghost domain names\" attack variant\nLong list of incoming EDNS options degrades performance\nJostle logic bypass degrades resolution performance\nDegradation of service with unbounded NSEC3 hash calculations\nPossible cache poisoning via promiscuous records for the authority\nsection\nUnbounded name compression in certain cases causes degradation of\nservice\nUse after free and crash under special conditions in RPZ code\nPossible domain hijacking via promiscuous records in the authority\nsection\nCache poisoning via the ECS-enabled Rebirthday Attack\nUnbounded name compression could lead to Denial of Service\nUnbound vulnerable to the \"DNSBomb\" pulsing DoS amplification attack\nDenial of service when trimming EDE text on positive replies\nDNSSEC verification complexity can be exploited to exhaust CPU resources\nand stall DNS resolvers\nNSEC3 closest encloser proof can exhaust CPU\nNon-Responsive Delegation Attack\nNovel \"ghost domain names\" attack by updating almost expired delegation\ninformation\nNovel \"ghost domain names\" attack by introducing subdomain delegations\nLocal symlink attack\nVulnerability in Domain Parse\nNXNSAttack\nVulnerability in IPSEC module\nVulnerability in parsing NOTIFY queries\nVulnerability in the processing of wildcard synthesized NSEC records\nNo limit to delegation chaining\nGhost domain names attack\nIncorrect proof processing for NSEC3-signed zone\nProcessing of duplicate CNAME records in a signed zone\nEmpty error packet handling assertion failure\n","status":"published","published":"2026-09-25T05:02:40Z","modified":"2026-09-25T05:15:03.49547618Z","updated_at":"2026-11-02T15:49:43.795591Z"},{"id":"openSUSE-SU-2026:11380-1","title":"libunbound8-1.25.2-1.1 on GA media","description":"These are all security issues fixed in the libunbound8-1.25.2-1.1 package on the GA media of openSUSE Tumbleweed.","status":"published","published":"2026-07-26T00:00:00Z","modified":"2026-07-27T09:00:10.044193884Z","updated_at":"2026-11-02T16:58:39.516824Z"},{"id":"openSUSE-SU-2026:21550-1","title":"Security update for unbound","description":"This update for unbound fixes the following issues:\n\nUpdate to version 1.25.2.\n\nSecurity issues fixed:\n\n- CVE-2026-14586: DoS via assertion in `libngtcp2` for DNS-over-QUIC environments with high concurrency (bsc#1271879).\n- CVE-2026-32665: Remote DNS-over-QUIC denial of service due to `quic-size` budget bypass (bsc#1271873).\n- CVE-2026-40691: DoS due to heap overflow via single bad DNSCrypt query over TCP (bsc#1271875).\n- CVE-2026-41637: Degradation of resolution service due to improperly accounted client-terminated DNS-over-QUIC queries\n  (bsc#1271891).\n- CVE-2026-42955: Ghost domain window can be extended by up to one cached TTL configured value for A/AAAA glue records\n  (bsc#1271892).\n- CVE-2026-44621: Libunbound applications configured with `unwanted-reply-threshold` could eventually be abruptly\n  terminated (bsc#1271876).\n- CVE-2026-44687: Off-by-one error in `harden-below-nxdomain` logic can shadow a stub/forward zone by a legitimate\n  parent's `NXDOMAIN` (bsc#1271893).\n- CVE-2026-44690: Cross-zone wildcard cache poisoning via `RRSIG.labels` manipulation (bsc#1271877).\n- CVE-2026-46582: Replay of a wildcard `rrset` as another piece of data triggers poisoning in the server expired reply\n  path (bsc#1271894).\n- CVE-2026-50045: `max-global-quota` bypass via single client queries for a deeply nested name under a DNSSEC-signed\n  parent (bsc#1271878).\n- CVE-2026-50046: Possible heap use-after-free in an error path when a DoT forwarded query is jostled out (bsc#1271882).\n- CVE-2026-50243: `response-ip`/`rpz` can rewrite BOGUS answers instead of returning SERVFAIL (bsc#1271880).\n- CVE-2026-50248: BOGUS configured primary hostname accepted for XFR in auth/rpz zones (bsc#1271881).\n- CVE-2026-50251: Attacker supplied `0.0.0.0`/`::` glue triggers defensive full-cache flush (bsc#1271883).\n- CVE-2026-50252: Possible cache poisoning attack by mapping source port population per thread (bsc#1271884).\n- CVE-2026-54478: DNS Cookie bypass when proxy-protocol with with `answer-cookie:yes` is used (bsc#1271895).\n- CVE-2026-55708: Privacy/configuration issue when adding local data in views through `unbound-control` (bsc#1271896).\n- CVE-2026-55717: `serve-expired-client-timeout` and `response-ip` CNAME redirect could lead to a crash (bsc#1271886).\n- CVE-2026-55973: DoS due to stack overflow triggered crash when `dns-error-reporting: yes` is set (bsc#1271874).\n- CVE-2026-55990: Crash via crafted client UDP query due to DNSCrypt faulty configuration (bsc#1271887).\n- CVE-2026-55991: Remote DNS-over-QUIC (DoQ) flow-control reacheable assertion failure in `libngtcp2` (bsc#1271888).\n- CVE-2026-56416: Possible heap buffer overflow when validator canonicalizes RDATA that contains domain name\n  (bsc#1271889).\n- CVE-2026-56444: Degradation of resolution service when `discard-timeout` and `serve-expired-client-timeout` are\n  combined in unusual configuration (bsc#1271890).\n\nOther updates and bugfixes:\n\n- Version 1.25.2:\n  + Features:\n    * TTL behavior changes: cached records reaching TTL 0 are expired;\n      TTL 0 upstream answers are no longer cached by cachedb;\n      serve-expired-reply-ttl is now capped by the original TTL value;\n      TTL decoding updated to adhere to RFC 8767 section 4\n    * Add new statistics: num.queries.replyaddr_limit and\n      requestlist.current.replies\n    * Add 'log-thread-id' configuration option to log the system-wide\n      Linux thread ID for easier debugging\n    * Add ECC-GOST12 support per RFC 9558 (available as\n      contrib/gost12.patch)\n    * Allow synthesized DNAME TTL=0 to be served from cache within a\n      1-second grace period, reducing recursion for TTL=0 DNAMEs\n      (RFC 2308)\n    * Fix DoT/DoH/DoQ to reload certificates on config reload without\n      requiring a full restart; fast_reload now supports changes to\n      tls-service-key, tls-service-pem and tls-cert-bundle\n    * Allow ip@port notation in control-interface configuration\n    * Add iter-scrub-rrsig option (default: 8) to limit the number of\n      RRSIGs processed by the scrubber\n    * Add 'tls-protocols' configuration option to select which TLS\n      protocol versions are used; TLSv1.2 is re-enabled by default\n    * Add pthread_setname_np support for named threads\n  + Bug Fixes:\n    * Fix handle leak in pythonmod on pythonmod_init\n    * Fix crash when mesh_detect_cycle_found() is called with no mesh\n      state\n    * Fix modstack_call_init to use the original string when it has\n      changed\n    * Fix fr_atomic_copy_cfg\n    * Fix auth-zone empty label for $ORIGIN when downloading via HTTP\n    * Fix respip and dns64 to be usable simultaneously; RPZ now works\n      with DNS64\n    * Fix HTTPS and QUIC not being enabled when port is listed in\n      interface-automatic-ports\n    * Allow wait-limit-cookie: 0 to disable cookie-validated wait limits\n    * Fix FIPS mode in OpenSSL causing unit test failure\n    * Fix discard-timeout to only drop UDP, not stream connections\n    * Reply with SERVFAIL when the wait-limit is exceeded\n    * Add extended DNS error code for invalid query type\n    * Replace deprecated SWIG $function with $action\n    * Log a warning for possible circular dependency when using hostnames\n      in stub/forward zones\n    * Fix infra cache for NAT64 by moving NAT64 synthesis to the\n      delegation point when adding target addresses\n    * Fix discard-timeout packet accounting in the mesh area\n    * Update IANA portlist\n    * Copy DNSTAP configuration from daemon to workers after fast_reload\n    * Fix HTTP/2 stream mesh state removal and drop handling for\n      postpone_drop and send failures\n    * Log THROWAWAY and (DNSSEC) LAME responses with clearer\n      categorization in log output\n    * Fix EDE removal logic consistency between encoding errors and\n      encoding replies\n    * Fix EDNS subnet scope-zero queries not being stored when\n      forward-no-cache or stub-no-cache is set\n    * Do not initialize quic_table unless QUIC is enabled\n    * Fix fast_reload to copy iter_scrub_ns, iter_scrub_cname and\n      max_global_quota options\n    * Fix allow-notify entries with hostnames to be copied after\n      IPv4/IPv6 lookup; fix skipping hostname lookups when only URLs\n      are configured\n    * Fix NAT64 inconsistency with do-not-query-address during retries\n    * Fix cachedb aggressive negative responses not setting the RA flag\n    * Fix root key priming failure after loading RPZ zones containing\n      ZONEMD RRtype\n    * Fix local-zone always_refuse to also block DS queries\n    * Fix cache lookup/store in external cachedb when forwarder/stub\n      uses the no-cache option\n    * Fix cachedb returning expired bogus data as non-bogus\n    * Fix validator unchecked state handling with validation recursion\n      and EDNS subnet\n    * Fix DNAME lookup flag and assertion in expired calculation debug\n      routine\n    * Fix DNS rebinding bypass via SVCB/HTTPS records; private-address\n      now also elides SVCB and HTTPS records matching the filter\n    * Warn for unused 'nodefault' local-zone configuration in\n      unbound-checkconf\n    * Fix lock/unlock for view in memory error handling\n    * Apply cache TTL policy to DNAME and synthesized CNAME on the\n      wire path\n    * Fix detection of HTTP listening port in fast_reload\n    * Fix ignoring out-of-zone DNAME records for CNAME synthesis\n    * Fix invalid HTTP content length/chunk size checks and RR rdata\n      field length validation in zone transfer, preventing heap\n      buffer-overflow read errors\n    * Fix defense in depth for service callback with empty packet\n    * Fix shared memory statistics with threads\n    * Fix EDNS client subnet to not store SERVFAIL in the global cache\n      after a failed lookup; stores a short-lived failure entry in the\n      subnet cache instead\n    * Fix memory corruption related core dumps when alloc_reg_obtain\n      encounters an empty list\n    * Fix RFC 7766 compliance when client sends EOF over TCP\n    * Fix DoH session cleanup when the same query appears on multiple\n      streams\n    * Fix TLS context setup for tls-service-pem\n    * Fix TTL comparisons in rdata_copy for 32-bit signed/unsigned values\n    * Fix memory leak in subnet SERVFAIL store\n    * Fix for the Jiggle Attack: server now answers errors for error\n      cases and no longer reflects parts of the incoming query\n    * Fix EDNS extended RCODE reflection: server no longer echoes\n      extended RCODE values after CHAOS class queries\n    * Fix iterator RCODE handling of YXDOMAIN: only accept YXDOMAIN\n      answers that contain a DNAME record\n    * Fix missing bounds check when decompressing dnames for downloaded\n      authority zones, preventing malformed content from truncated AXFR\n      packets\n    * Fix upstream TLS connections being reused for different names at\n      the same IP address\n    * Fix to disallow signatures with revoked DNSKEYs\n    * Fix DNAME with unsigned CNAME to check for the correct match,\n      preventing certain zone configurations from granting secure status\n      to unchecked CNAMEs\n    * Fix wildcard CNAME handling in the chain of trust\n    * Fix buffer overrun in doq_repinfo_retrieve_localaddr()\n  + Packaging changes:\n    * Update keyring to new NLnet Labs release signing key\n","status":"published","published":"2026-08-10T15:27:28Z","modified":"2026-08-12T18:23:41.681356663Z","updated_at":"2026-11-02T16:58:41.885092Z"},{"id":"ROOT-OS-DEBIAN-11-CVE-2026-55973","title":"CVE-2026-55973 in unbound - Patched by Root","description":"Root has patched CVE-2026-55973 in the unbound package for Root:Debian:11. Multiple fixed versions available.","status":"published","published":"2026-08-31T09:51:41Z","modified":"2026-08-31T11:30:03.047380179Z","updated_at":"2026-11-02T15:53:30.44348Z"},{"id":"ROOT-OS-DEBIAN-12-CVE-2026-55973","title":"CVE-2026-55973 in unbound - Patched by Root","description":"Root has patched CVE-2026-55973 in the unbound package for Root:Debian:12. Multiple fixed versions available.","status":"published","published":"2026-09-22T12:19:46Z","modified":"2026-09-22T13:15:03.140764016Z","updated_at":"2026-11-02T15:53:32.298225Z"},{"id":"ROOT-OS-DEBIAN-13-CVE-2026-55973","title":"CVE-2026-55973 in unbound - Patched by Root","description":"Root has patched CVE-2026-55973 in the unbound package for Root:Debian:13. Multiple fixed versions available.","status":"withdrawn","published":"2026-09-23T08:20:02Z","modified":"2026-10-09T13:00:16.204948354Z","updated_at":"2026-11-02T15:53:33.681527Z"},{"id":"SUSE-SU-2026:23050-1","title":"Security update for unbound","description":"This update for unbound fixes the following issues:\n\nUpdate to version 1.25.2.\n\nSecurity issues fixed:\n\n- CVE-2026-14586: DoS via assertion in `libngtcp2` for DNS-over-QUIC environments with high concurrency (bsc#1271879).\n- CVE-2026-32665: Remote DNS-over-QUIC denial of service due to `quic-size` budget bypass (bsc#1271873).\n- CVE-2026-40691: DoS due to heap overflow via single bad DNSCrypt query over TCP (bsc#1271875).\n- CVE-2026-41637: Degradation of resolution service due to improperly accounted client-terminated DNS-over-QUIC queries\n  (bsc#1271891).\n- CVE-2026-42955: Ghost domain window can be extended by up to one cached TTL configured value for A/AAAA glue records\n  (bsc#1271892).\n- CVE-2026-44621: Libunbound applications configured with `unwanted-reply-threshold` could eventually be abruptly\n  terminated (bsc#1271876).\n- CVE-2026-44687: Off-by-one error in `harden-below-nxdomain` logic can shadow a stub/forward zone by a legitimate\n  parent's `NXDOMAIN` (bsc#1271893).\n- CVE-2026-44690: Cross-zone wildcard cache poisoning via `RRSIG.labels` manipulation (bsc#1271877).\n- CVE-2026-46582: Replay of a wildcard `rrset` as another piece of data triggers poisoning in the server expired reply\n  path (bsc#1271894).\n- CVE-2026-50045: `max-global-quota` bypass via single client queries for a deeply nested name under a DNSSEC-signed\n  parent (bsc#1271878).\n- CVE-2026-50046: Possible heap use-after-free in an error path when a DoT forwarded query is jostled out (bsc#1271882).\n- CVE-2026-50243: `response-ip`/`rpz` can rewrite BOGUS answers instead of returning SERVFAIL (bsc#1271880).\n- CVE-2026-50248: BOGUS configured primary hostname accepted for XFR in auth/rpz zones (bsc#1271881).\n- CVE-2026-50251: Attacker supplied `0.0.0.0`/`::` glue triggers defensive full-cache flush (bsc#1271883).\n- CVE-2026-50252: Possible cache poisoning attack by mapping source port population per thread (bsc#1271884).\n- CVE-2026-54478: DNS Cookie bypass when proxy-protocol with with `answer-cookie:yes` is used (bsc#1271895).\n- CVE-2026-55708: Privacy/configuration issue when adding local data in views through `unbound-control` (bsc#1271896).\n- CVE-2026-55717: `serve-expired-client-timeout` and `response-ip` CNAME redirect could lead to a crash (bsc#1271886).\n- CVE-2026-55973: DoS due to stack overflow triggered crash when `dns-error-reporting: yes` is set (bsc#1271874).\n- CVE-2026-55990: Crash via crafted client UDP query due to DNSCrypt faulty configuration (bsc#1271887).\n- CVE-2026-55991: Remote DNS-over-QUIC (DoQ) flow-control reacheable assertion failure in `libngtcp2` (bsc#1271888).\n- CVE-2026-56416: Possible heap buffer overflow when validator canonicalizes RDATA that contains domain name\n  (bsc#1271889).\n- CVE-2026-56444: Degradation of resolution service when `discard-timeout` and `serve-expired-client-timeout` are\n  combined in unusual configuration (bsc#1271890).\n\nOther updates and bugfixes:\n\n- Version 1.25.2:\n  + Features:\n    * TTL behavior changes: cached records reaching TTL 0 are expired;\n      TTL 0 upstream answers are no longer cached by cachedb;\n      serve-expired-reply-ttl is now capped by the original TTL value;\n      TTL decoding updated to adhere to RFC 8767 section 4\n    * Add new statistics: num.queries.replyaddr_limit and\n      requestlist.current.replies\n    * Add 'log-thread-id' configuration option to log the system-wide\n      Linux thread ID for easier debugging\n    * Add ECC-GOST12 support per RFC 9558 (available as\n      contrib/gost12.patch)\n    * Allow synthesized DNAME TTL=0 to be served from cache within a\n      1-second grace period, reducing recursion for TTL=0 DNAMEs\n      (RFC 2308)\n    * Fix DoT/DoH/DoQ to reload certificates on config reload without\n      requiring a full restart; fast_reload now supports changes to\n      tls-service-key, tls-service-pem and tls-cert-bundle\n    * Allow ip@port notation in control-interface configuration\n    * Add iter-scrub-rrsig option (default: 8) to limit the number of\n      RRSIGs processed by the scrubber\n    * Add 'tls-protocols' configuration option to select which TLS\n      protocol versions are used; TLSv1.2 is re-enabled by default\n    * Add pthread_setname_np support for named threads\n  + Bug Fixes:\n    * Fix handle leak in pythonmod on pythonmod_init\n    * Fix crash when mesh_detect_cycle_found() is called with no mesh\n      state\n    * Fix modstack_call_init to use the original string when it has\n      changed\n    * Fix fr_atomic_copy_cfg\n    * Fix auth-zone empty label for $ORIGIN when downloading via HTTP\n    * Fix respip and dns64 to be usable simultaneously; RPZ now works\n      with DNS64\n    * Fix HTTPS and QUIC not being enabled when port is listed in\n      interface-automatic-ports\n    * Allow wait-limit-cookie: 0 to disable cookie-validated wait limits\n    * Fix FIPS mode in OpenSSL causing unit test failure\n    * Fix discard-timeout to only drop UDP, not stream connections\n    * Reply with SERVFAIL when the wait-limit is exceeded\n    * Add extended DNS error code for invalid query type\n    * Replace deprecated SWIG $function with $action\n    * Log a warning for possible circular dependency when using hostnames\n      in stub/forward zones\n    * Fix infra cache for NAT64 by moving NAT64 synthesis to the\n      delegation point when adding target addresses\n    * Fix discard-timeout packet accounting in the mesh area\n    * Update IANA portlist\n    * Copy DNSTAP configuration from daemon to workers after fast_reload\n    * Fix HTTP/2 stream mesh state removal and drop handling for\n      postpone_drop and send failures\n    * Log THROWAWAY and (DNSSEC) LAME responses with clearer\n      categorization in log output\n    * Fix EDE removal logic consistency between encoding errors and\n      encoding replies\n    * Fix EDNS subnet scope-zero queries not being stored when\n      forward-no-cache or stub-no-cache is set\n    * Do not initialize quic_table unless QUIC is enabled\n    * Fix fast_reload to copy iter_scrub_ns, iter_scrub_cname and\n      max_global_quota options\n    * Fix allow-notify entries with hostnames to be copied after\n      IPv4/IPv6 lookup; fix skipping hostname lookups when only URLs\n      are configured\n    * Fix NAT64 inconsistency with do-not-query-address during retries\n    * Fix cachedb aggressive negative responses not setting the RA flag\n    * Fix root key priming failure after loading RPZ zones containing\n      ZONEMD RRtype\n    * Fix local-zone always_refuse to also block DS queries\n    * Fix cache lookup/store in external cachedb when forwarder/stub\n      uses the no-cache option\n    * Fix cachedb returning expired bogus data as non-bogus\n    * Fix validator unchecked state handling with validation recursion\n      and EDNS subnet\n    * Fix DNAME lookup flag and assertion in expired calculation debug\n      routine\n    * Fix DNS rebinding bypass via SVCB/HTTPS records; private-address\n      now also elides SVCB and HTTPS records matching the filter\n    * Warn for unused 'nodefault' local-zone configuration in\n      unbound-checkconf\n    * Fix lock/unlock for view in memory error handling\n    * Apply cache TTL policy to DNAME and synthesized CNAME on the\n      wire path\n    * Fix detection of HTTP listening port in fast_reload\n    * Fix ignoring out-of-zone DNAME records for CNAME synthesis\n    * Fix invalid HTTP content length/chunk size checks and RR rdata\n      field length validation in zone transfer, preventing heap\n      buffer-overflow read errors\n    * Fix defense in depth for service callback with empty packet\n    * Fix shared memory statistics with threads\n    * Fix EDNS client subnet to not store SERVFAIL in the global cache\n      after a failed lookup; stores a short-lived failure entry in the\n      subnet cache instead\n    * Fix memory corruption related core dumps when alloc_reg_obtain\n      encounters an empty list\n    * Fix RFC 7766 compliance when client sends EOF over TCP\n    * Fix DoH session cleanup when the same query appears on multiple\n      streams\n    * Fix TLS context setup for tls-service-pem\n    * Fix TTL comparisons in rdata_copy for 32-bit signed/unsigned values\n    * Fix memory leak in subnet SERVFAIL store\n    * Fix for the Jiggle Attack: server now answers errors for error\n      cases and no longer reflects parts of the incoming query\n    * Fix EDNS extended RCODE reflection: server no longer echoes\n      extended RCODE values after CHAOS class queries\n    * Fix iterator RCODE handling of YXDOMAIN: only accept YXDOMAIN\n      answers that contain a DNAME record\n    * Fix missing bounds check when decompressing dnames for downloaded\n      authority zones, preventing malformed content from truncated AXFR\n      packets\n    * Fix upstream TLS connections being reused for different names at\n      the same IP address\n    * Fix to disallow signatures with revoked DNSKEYs\n    * Fix DNAME with unsigned CNAME to check for the correct match,\n      preventing certain zone configurations from granting secure status\n      to unchecked CNAMEs\n    * Fix wildcard CNAME handling in the chain of trust\n    * Fix buffer overrun in doq_repinfo_retrieve_localaddr()\n  + Packaging changes:\n    * Update keyring to new NLnet Labs release signing key\n","status":"published","published":"2026-08-10T15:26:22Z","modified":"2026-08-12T10:45:03.439161172Z","updated_at":"2026-11-02T15:54:03.503431Z"},{"id":"SUSE-SU-2026:23215-1","title":"Security update for unbound","description":"This update for unbound fixes the following issues:\n\nUpdate to version 1.25.2.\n\nSecurity issues fixed:\n\n- CVE-2026-14586: DoS via assertion in `libngtcp2` for DNS-over-QUIC environments with high concurrency (bsc#1271879).\n- CVE-2026-32665: Remote DNS-over-QUIC denial of service due to `quic-size` budget bypass (bsc#1271873).\n- CVE-2026-40691: DoS due to heap overflow via single bad DNSCrypt query over TCP (bsc#1271875).\n- CVE-2026-41637: Degradation of resolution service due to improperly accounted client-terminated DNS-over-QUIC queries\n  (bsc#1271891).\n- CVE-2026-42955: Ghost domain window can be extended by up to one cached TTL configured value for A/AAAA glue records\n  (bsc#1271892).\n- CVE-2026-44621: Libunbound applications configured with `unwanted-reply-threshold` could eventually be abruptly\n  terminated (bsc#1271876).\n- CVE-2026-44687: Off-by-one error in `harden-below-nxdomain` logic can shadow a stub/forward zone by a legitimate\n  parent's `NXDOMAIN` (bsc#1271893).\n- CVE-2026-44690: Cross-zone wildcard cache poisoning via `RRSIG.labels` manipulation (bsc#1271877).\n- CVE-2026-46582: Replay of a wildcard `rrset` as another piece of data triggers poisoning in the server expired reply\n  path (bsc#1271894).\n- CVE-2026-50045: `max-global-quota` bypass via single client queries for a deeply nested name under a DNSSEC-signed\n  parent (bsc#1271878).\n- CVE-2026-50046: Possible heap use-after-free in an error path when a DoT forwarded query is jostled out (bsc#1271882).\n- CVE-2026-50243: `response-ip`/`rpz` can rewrite BOGUS answers instead of returning SERVFAIL (bsc#1271880).\n- CVE-2026-50248: BOGUS configured primary hostname accepted for XFR in auth/rpz zones (bsc#1271881).\n- CVE-2026-50251: Attacker supplied `0.0.0.0`/`::` glue triggers defensive full-cache flush (bsc#1271883).\n- CVE-2026-50252: Possible cache poisoning attack by mapping source port population per thread (bsc#1271884).\n- CVE-2026-54478: DNS Cookie bypass when proxy-protocol with with `answer-cookie:yes` is used (bsc#1271895).\n- CVE-2026-55708: Privacy/configuration issue when adding local data in views through `unbound-control` (bsc#1271896).\n- CVE-2026-55717: `serve-expired-client-timeout` and `response-ip` CNAME redirect could lead to a crash (bsc#1271886).\n- CVE-2026-55973: DoS due to stack overflow triggered crash when `dns-error-reporting: yes` is set (bsc#1271874).\n- CVE-2026-55990: Crash via crafted client UDP query due to DNSCrypt faulty configuration (bsc#1271887).\n- CVE-2026-55991: Remote DNS-over-QUIC (DoQ) flow-control reacheable assertion failure in `libngtcp2` (bsc#1271888).\n- CVE-2026-56416: Possible heap buffer overflow when validator canonicalizes RDATA that contains domain name\n  (bsc#1271889).\n- CVE-2026-56444: Degradation of resolution service when `discard-timeout` and `serve-expired-client-timeout` are\n  combined in unusual configuration (bsc#1271890).\n\nOther updates and bugfixes:\n\n- Version 1.25.2:\n  + Features:\n    * TTL behavior changes: cached records reaching TTL 0 are expired;\n      TTL 0 upstream answers are no longer cached by cachedb;\n      serve-expired-reply-ttl is now capped by the original TTL value;\n      TTL decoding updated to adhere to RFC 8767 section 4\n    * Add new statistics: num.queries.replyaddr_limit and\n      requestlist.current.replies\n    * Add 'log-thread-id' configuration option to log the system-wide\n      Linux thread ID for easier debugging\n    * Add ECC-GOST12 support per RFC 9558 (available as\n      contrib/gost12.patch)\n    * Allow synthesized DNAME TTL=0 to be served from cache within a\n      1-second grace period, reducing recursion for TTL=0 DNAMEs\n      (RFC 2308)\n    * Fix DoT/DoH/DoQ to reload certificates on config reload without\n      requiring a full restart; fast_reload now supports changes to\n      tls-service-key, tls-service-pem and tls-cert-bundle\n    * Allow ip@port notation in control-interface configuration\n    * Add iter-scrub-rrsig option (default: 8) to limit the number of\n      RRSIGs processed by the scrubber\n    * Add 'tls-protocols' configuration option to select which TLS\n      protocol versions are used; TLSv1.2 is re-enabled by default\n    * Add pthread_setname_np support for named threads\n  + Bug Fixes:\n    * Fix handle leak in pythonmod on pythonmod_init\n    * Fix crash when mesh_detect_cycle_found() is called with no mesh\n      state\n    * Fix modstack_call_init to use the original string when it has\n      changed\n    * Fix fr_atomic_copy_cfg\n    * Fix auth-zone empty label for $ORIGIN when downloading via HTTP\n    * Fix respip and dns64 to be usable simultaneously; RPZ now works\n      with DNS64\n    * Fix HTTPS and QUIC not being enabled when port is listed in\n      interface-automatic-ports\n    * Allow wait-limit-cookie: 0 to disable cookie-validated wait limits\n    * Fix FIPS mode in OpenSSL causing unit test failure\n    * Fix discard-timeout to only drop UDP, not stream connections\n    * Reply with SERVFAIL when the wait-limit is exceeded\n    * Add extended DNS error code for invalid query type\n    * Replace deprecated SWIG $function with $action\n    * Log a warning for possible circular dependency when using hostnames\n      in stub/forward zones\n    * Fix infra cache for NAT64 by moving NAT64 synthesis to the\n      delegation point when adding target addresses\n    * Fix discard-timeout packet accounting in the mesh area\n    * Update IANA portlist\n    * Copy DNSTAP configuration from daemon to workers after fast_reload\n    * Fix HTTP/2 stream mesh state removal and drop handling for\n      postpone_drop and send failures\n    * Log THROWAWAY and (DNSSEC) LAME responses with clearer\n      categorization in log output\n    * Fix EDE removal logic consistency between encoding errors and\n      encoding replies\n    * Fix EDNS subnet scope-zero queries not being stored when\n      forward-no-cache or stub-no-cache is set\n    * Do not initialize quic_table unless QUIC is enabled\n    * Fix fast_reload to copy iter_scrub_ns, iter_scrub_cname and\n      max_global_quota options\n    * Fix allow-notify entries with hostnames to be copied after\n      IPv4/IPv6 lookup; fix skipping hostname lookups when only URLs\n      are configured\n    * Fix NAT64 inconsistency with do-not-query-address during retries\n    * Fix cachedb aggressive negative responses not setting the RA flag\n    * Fix root key priming failure after loading RPZ zones containing\n      ZONEMD RRtype\n    * Fix local-zone always_refuse to also block DS queries\n    * Fix cache lookup/store in external cachedb when forwarder/stub\n      uses the no-cache option\n    * Fix cachedb returning expired bogus data as non-bogus\n    * Fix validator unchecked state handling with validation recursion\n      and EDNS subnet\n    * Fix DNAME lookup flag and assertion in expired calculation debug\n      routine\n    * Fix DNS rebinding bypass via SVCB/HTTPS records; private-address\n      now also elides SVCB and HTTPS records matching the filter\n    * Warn for unused 'nodefault' local-zone configuration in\n      unbound-checkconf\n    * Fix lock/unlock for view in memory error handling\n    * Apply cache TTL policy to DNAME and synthesized CNAME on the\n      wire path\n    * Fix detection of HTTP listening port in fast_reload\n    * Fix ignoring out-of-zone DNAME records for CNAME synthesis\n    * Fix invalid HTTP content length/chunk size checks and RR rdata\n      field length validation in zone transfer, preventing heap\n      buffer-overflow read errors\n    * Fix defense in depth for service callback with empty packet\n    * Fix shared memory statistics with threads\n    * Fix EDNS client subnet to not store SERVFAIL in the global cache\n      after a failed lookup; stores a short-lived failure entry in the\n      subnet cache instead\n    * Fix memory corruption related core dumps when alloc_reg_obtain\n      encounters an empty list\n    * Fix RFC 7766 compliance when client sends EOF over TCP\n    * Fix DoH session cleanup when the same query appears on multiple\n      streams\n    * Fix TLS context setup for tls-service-pem\n    * Fix TTL comparisons in rdata_copy for 32-bit signed/unsigned values\n    * Fix memory leak in subnet SERVFAIL store\n    * Fix for the Jiggle Attack: server now answers errors for error\n      cases and no longer reflects parts of the incoming query\n    * Fix EDNS extended RCODE reflection: server no longer echoes\n      extended RCODE values after CHAOS class queries\n    * Fix iterator RCODE handling of YXDOMAIN: only accept YXDOMAIN\n      answers that contain a DNAME record\n    * Fix missing bounds check when decompressing dnames for downloaded\n      authority zones, preventing malformed content from truncated AXFR\n      packets\n    * Fix upstream TLS connections being reused for different names at\n      the same IP address\n    * Fix to disallow signatures with revoked DNSKEYs\n    * Fix DNAME with unsigned CNAME to check for the correct match,\n      preventing certain zone configurations from granting secure status\n      to unchecked CNAMEs\n    * Fix wildcard CNAME handling in the chain of trust\n    * Fix buffer overrun in doq_repinfo_retrieve_localaddr()\n  + Packaging changes:\n    * Update keyring to new NLnet Labs release signing key\n","status":"published","published":"2026-08-10T15:26:22Z","modified":"2026-08-27T18:23:09.188902083Z","updated_at":"2026-11-02T15:54:03.503431Z"},{"id":"SUSE-SU-2026:23226-1","title":"Security update for unbound","description":"This update for unbound fixes the following issues:\n\nUpdate to version 1.25.2.\n\nSecurity issues fixed:\n\n- CVE-2026-14586: DoS via assertion in `libngtcp2` for DNS-over-QUIC environments with high concurrency (bsc#1271879).\n- CVE-2026-32665: Remote DNS-over-QUIC denial of service due to `quic-size` budget bypass (bsc#1271873).\n- CVE-2026-40691: DoS due to heap overflow via single bad DNSCrypt query over TCP (bsc#1271875).\n- CVE-2026-41637: Degradation of resolution service due to improperly accounted client-terminated DNS-over-QUIC queries\n  (bsc#1271891).\n- CVE-2026-42955: Ghost domain window can be extended by up to one cached TTL configured value for A/AAAA glue records\n  (bsc#1271892).\n- CVE-2026-44621: Libunbound applications configured with `unwanted-reply-threshold` could eventually be abruptly\n  terminated (bsc#1271876).\n- CVE-2026-44687: Off-by-one error in `harden-below-nxdomain` logic can shadow a stub/forward zone by a legitimate\n  parent's `NXDOMAIN` (bsc#1271893).\n- CVE-2026-44690: Cross-zone wildcard cache poisoning via `RRSIG.labels` manipulation (bsc#1271877).\n- CVE-2026-46582: Replay of a wildcard `rrset` as another piece of data triggers poisoning in the server expired reply\n  path (bsc#1271894).\n- CVE-2026-50045: `max-global-quota` bypass via single client queries for a deeply nested name under a DNSSEC-signed\n  parent (bsc#1271878).\n- CVE-2026-50046: Possible heap use-after-free in an error path when a DoT forwarded query is jostled out (bsc#1271882).\n- CVE-2026-50243: `response-ip`/`rpz` can rewrite BOGUS answers instead of returning SERVFAIL (bsc#1271880).\n- CVE-2026-50248: BOGUS configured primary hostname accepted for XFR in auth/rpz zones (bsc#1271881).\n- CVE-2026-50251: Attacker supplied `0.0.0.0`/`::` glue triggers defensive full-cache flush (bsc#1271883).\n- CVE-2026-50252: Possible cache poisoning attack by mapping source port population per thread (bsc#1271884).\n- CVE-2026-54478: DNS Cookie bypass when proxy-protocol with with `answer-cookie:yes` is used (bsc#1271895).\n- CVE-2026-55708: Privacy/configuration issue when adding local data in views through `unbound-control` (bsc#1271896).\n- CVE-2026-55717: `serve-expired-client-timeout` and `response-ip` CNAME redirect could lead to a crash (bsc#1271886).\n- CVE-2026-55973: DoS due to stack overflow triggered crash when `dns-error-reporting: yes` is set (bsc#1271874).\n- CVE-2026-55990: Crash via crafted client UDP query due to DNSCrypt faulty configuration (bsc#1271887).\n- CVE-2026-55991: Remote DNS-over-QUIC (DoQ) flow-control reacheable assertion failure in `libngtcp2` (bsc#1271888).\n- CVE-2026-56416: Possible heap buffer overflow when validator canonicalizes RDATA that contains domain name\n  (bsc#1271889).\n- CVE-2026-56444: Degradation of resolution service when `discard-timeout` and `serve-expired-client-timeout` are\n  combined in unusual configuration (bsc#1271890).\n\nOther updates and bugfixes:\n\n- Version 1.25.2:\n  + Features:\n    * TTL behavior changes: cached records reaching TTL 0 are expired;\n      TTL 0 upstream answers are no longer cached by cachedb;\n      serve-expired-reply-ttl is now capped by the original TTL value;\n      TTL decoding updated to adhere to RFC 8767 section 4\n    * Add new statistics: num.queries.replyaddr_limit and\n      requestlist.current.replies\n    * Add 'log-thread-id' configuration option to log the system-wide\n      Linux thread ID for easier debugging\n    * Add ECC-GOST12 support per RFC 9558 (available as\n      contrib/gost12.patch)\n    * Allow synthesized DNAME TTL=0 to be served from cache within a\n      1-second grace period, reducing recursion for TTL=0 DNAMEs\n      (RFC 2308)\n    * Fix DoT/DoH/DoQ to reload certificates on config reload without\n      requiring a full restart; fast_reload now supports changes to\n      tls-service-key, tls-service-pem and tls-cert-bundle\n    * Allow ip@port notation in control-interface configuration\n    * Add iter-scrub-rrsig option (default: 8) to limit the number of\n      RRSIGs processed by the scrubber\n    * Add 'tls-protocols' configuration option to select which TLS\n      protocol versions are used; TLSv1.2 is re-enabled by default\n    * Add pthread_setname_np support for named threads\n  + Bug Fixes:\n    * Fix handle leak in pythonmod on pythonmod_init\n    * Fix crash when mesh_detect_cycle_found() is called with no mesh\n      state\n    * Fix modstack_call_init to use the original string when it has\n      changed\n    * Fix fr_atomic_copy_cfg\n    * Fix auth-zone empty label for $ORIGIN when downloading via HTTP\n    * Fix respip and dns64 to be usable simultaneously; RPZ now works\n      with DNS64\n    * Fix HTTPS and QUIC not being enabled when port is listed in\n      interface-automatic-ports\n    * Allow wait-limit-cookie: 0 to disable cookie-validated wait limits\n    * Fix FIPS mode in OpenSSL causing unit test failure\n    * Fix discard-timeout to only drop UDP, not stream connections\n    * Reply with SERVFAIL when the wait-limit is exceeded\n    * Add extended DNS error code for invalid query type\n    * Replace deprecated SWIG $function with $action\n    * Log a warning for possible circular dependency when using hostnames\n      in stub/forward zones\n    * Fix infra cache for NAT64 by moving NAT64 synthesis to the\n      delegation point when adding target addresses\n    * Fix discard-timeout packet accounting in the mesh area\n    * Update IANA portlist\n    * Copy DNSTAP configuration from daemon to workers after fast_reload\n    * Fix HTTP/2 stream mesh state removal and drop handling for\n      postpone_drop and send failures\n    * Log THROWAWAY and (DNSSEC) LAME responses with clearer\n      categorization in log output\n    * Fix EDE removal logic consistency between encoding errors and\n      encoding replies\n    * Fix EDNS subnet scope-zero queries not being stored when\n      forward-no-cache or stub-no-cache is set\n    * Do not initialize quic_table unless QUIC is enabled\n    * Fix fast_reload to copy iter_scrub_ns, iter_scrub_cname and\n      max_global_quota options\n    * Fix allow-notify entries with hostnames to be copied after\n      IPv4/IPv6 lookup; fix skipping hostname lookups when only URLs\n      are configured\n    * Fix NAT64 inconsistency with do-not-query-address during retries\n    * Fix cachedb aggressive negative responses not setting the RA flag\n    * Fix root key priming failure after loading RPZ zones containing\n      ZONEMD RRtype\n    * Fix local-zone always_refuse to also block DS queries\n    * Fix cache lookup/store in external cachedb when forwarder/stub\n      uses the no-cache option\n    * Fix cachedb returning expired bogus data as non-bogus\n    * Fix validator unchecked state handling with validation recursion\n      and EDNS subnet\n    * Fix DNAME lookup flag and assertion in expired calculation debug\n      routine\n    * Fix DNS rebinding bypass via SVCB/HTTPS records; private-address\n      now also elides SVCB and HTTPS records matching the filter\n    * Warn for unused 'nodefault' local-zone configuration in\n      unbound-checkconf\n    * Fix lock/unlock for view in memory error handling\n    * Apply cache TTL policy to DNAME and synthesized CNAME on the\n      wire path\n    * Fix detection of HTTP listening port in fast_reload\n    * Fix ignoring out-of-zone DNAME records for CNAME synthesis\n    * Fix invalid HTTP content length/chunk size checks and RR rdata\n      field length validation in zone transfer, preventing heap\n      buffer-overflow read errors\n    * Fix defense in depth for service callback with empty packet\n    * Fix shared memory statistics with threads\n    * Fix EDNS client subnet to not store SERVFAIL in the global cache\n      after a failed lookup; stores a short-lived failure entry in the\n      subnet cache instead\n    * Fix memory corruption related core dumps when alloc_reg_obtain\n      encounters an empty list\n    * Fix RFC 7766 compliance when client sends EOF over TCP\n    * Fix DoH session cleanup when the same query appears on multiple\n      streams\n    * Fix TLS context setup for tls-service-pem\n    * Fix TTL comparisons in rdata_copy for 32-bit signed/unsigned values\n    * Fix memory leak in subnet SERVFAIL store\n    * Fix for the Jiggle Attack: server now answers errors for error\n      cases and no longer reflects parts of the incoming query\n    * Fix EDNS extended RCODE reflection: server no longer echoes\n      extended RCODE values after CHAOS class queries\n    * Fix iterator RCODE handling of YXDOMAIN: only accept YXDOMAIN\n      answers that contain a DNAME record\n    * Fix missing bounds check when decompressing dnames for downloaded\n      authority zones, preventing malformed content from truncated AXFR\n      packets\n    * Fix upstream TLS connections being reused for different names at\n      the same IP address\n    * Fix to disallow signatures with revoked DNSKEYs\n    * Fix DNAME with unsigned CNAME to check for the correct match,\n      preventing certain zone configurations from granting secure status\n      to unchecked CNAMEs\n    * Fix wildcard CNAME handling in the chain of trust\n    * Fix buffer overrun in doq_repinfo_retrieve_localaddr()\n  + Packaging changes:\n    * Update keyring to new NLnet Labs release signing key\n","status":"published","published":"2026-08-10T15:26:22Z","modified":"2026-08-27T18:23:10.17349122Z","updated_at":"2026-11-02T15:54:03.503431Z"},{"id":"USN-8946-1","title":"unbound vulnerabilities","description":"It was discovered that Unbound incorrectly handled certain TCP connections.\nA remote attacker could possibly use this issue to cause Unbound to consume\nresources, leading to a denial of service. This issue only affected Ubuntu\n26.04 LTS, Ubuntu 24.04 LTS, Ubuntu 22.04 LTS and Ubuntu 20.04 LTS.\n(CVE-2026-80225)\n\nIt was discovered that Unbound incorrectly handled certain DNS responses. A\nremote attacker could possibly use this issue to crash Unbound, resulting\nin a denial of service. (CVE-2026-81634)\n\nIt was discovered that Unbound incorrectly handled certain DNS responses\nduring DNSSEC validation. A remote attacker could possibly use this issue\nto cause Unbound to consume resources, leading to a denial of service.\n(CVE-2026-85501)\n\nIt was discovered that Unbound incorrectly handled outgoing network ports.\nA remote attacker could possibly use this issue to crash Unbound, resulting\nin a denial of service. (CVE-2026-50252)\n\nIt was discovered that Unbound incorrectly handled certain DNSCrypt\npackets. A remote attacker could possibly use this issue to crash Unbound,\nresulting in a denial of service. This issue only affected Ubuntu 26.04\nLTS, Ubuntu 24.04 LTS, Ubuntu 22.04 LTS, Ubuntu 20.04 LTS and Ubuntu 18.04\nLTS. (CVE-2026-40691)\n\nIt was discovered that Unbound incorrectly handled certain cached DNS\nresponses. A remote attacker could possibly use this issue to poison\nUnbound's cache. This issue only affected Ubuntu 26.04 LTS, Ubuntu 24.04\nLTS, Ubuntu 22.04 LTS and Ubuntu 20.04 LTS. (CVE-2026-44690)\n\nIt was discovered that Unbound incorrectly handled certain DNS-over-QUIC\nconnections. A remote attacker could possibly use this issue to cause\nUnbound to consume resources, leading to a denial of service. This issue\nonly affected Ubuntu 26.04 LTS. (CVE-2026-32665)\n\nIt was discovered that Unbound incorrectly handled certain EDNS options. A\nremote attacker could possibly use this issue to crash Unbound, resulting\nin a denial of service. This issue only affected Ubuntu 26.04 LTS.\n(CVE-2026-55973)\n\nElias Heftrig, Haya Schulmann, Niklas Vogel, and Michael Waidner discovered\nthat Unbound incorrectly handled validating DNSSEC messages. A remote\nattacker could possibly use this issue to cause Unbound to consume\nresources, leading to a denial of service. This issue only affected Ubuntu\n18.04 LTS, Ubuntu 16.04 LTS and Ubuntu 14.04 LTS. (CVE-2023-50387)\n\nIt was discovered that Unbound incorrectly handled preparing an NSEC3\nclosest encloser proof. A remote attacker could possibly use this issue to\ncause Unbound to consume resources, leading to a denial of service. This\nissue only affected Ubuntu 18.04 LTS, Ubuntu 16.04 LTS and Ubuntu 14.04\nLTS. (CVE-2023-50868)","status":"published","published":"2026-10-21T09:48:45Z","modified":"2026-10-21T23:13:04.088658103Z","updated_at":"2026-11-02T16:58:26.907654Z"}]}}
