{"id":"CVE-2026-96405","kind":"vulnerability","aliases":["CVE-2026-96405"],"related":[],"title":"Unbound DNS resolver: crafted replies can exhaust CPU during name decompression","description":"NLnet Labs Unbound up to and including version 1.26.1 limits compression-pointer traversal for each individual domain-name operation but has no aggregate inbound decompression-work budget. Many chained compression pointers in a message results in a lot of CPU usage following them. A malicious actor with recursive-query access and control of an ordinarily delegated authority that serves specially crafted replies can exploit the vulnerability and degrade Unbound's general performance.","summary":"Unbound up to and including 1.26.1 limits compression-pointer traversal per domain-name operation but has no aggregate decompression budget per inbound message. A crafted reply with many chained compression pointers makes Unbound spend heavy CPU, degrading its performance.","severity":"medium","cvss":5.3,"epss":0.00238,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["dns","package","self-hosted","unbound"],"not_affected_if":["auth-required","authoritative-only"],"how_to_check":"- Run `unbound -V` and compare the reported version against `1.26.1`.\n- Check whether recursive queries are reachable from untrusted clients, since the attack needs recursive-query access.","fix":"- Move Unbound to a version later than `1.26.1` once a patched release is available; the sources do not name the fixed version.\n- Restrict recursive query access to trusted clients as an interim measure.","status":"open","published_at":"2026-10-21T09:17:08+00:00","first_seen_at":"2026-10-23T21:57:28+00:00","triaged_at":"2026-10-25T04:21:00+00:00","updated_at":"2026-10-25T04:21:00+00:00","category":"package","confidence":0.7,"triage":{"at":"2026-10-25T04:21:00Z","model":"claude-haiku-5-5","output":{"fix":"- Move Unbound to a version later than `1.26.1` once a patched release is available; the sources do not name the fixed version.\n- Restrict recursive query access to trusted clients as an interim measure.","reach":"network","title":"Unbound DNS resolver: crafted replies can exhaust CPU during name decompression","impact":"low","summary":"Unbound up to and including 1.26.1 limits compression-pointer traversal per domain-name operation but has no aggregate decompression budget per inbound message. A crafted reply with many chained compression pointers makes Unbound spend heavy CPU, degrading its performance.","category":"package","nicknames":[],"who_cares":["unbound","dns","self-hosted"],"confidence":0.7,"needs_auth":"yes","worst_case":"Resolver CPU is consumed, degrading DNS service for its clients","analyst_note":"Confirm the fixed Unbound version and whether a patch exists; the NVD entry is the only source provided.","how_to_check":"- Run `unbound -V` and compare the reported version against `1.26.1`.\n- Check whether recursive queries are reachable from untrusted clients, since the attack needs recursive-query access.","needs_analyst":true,"not_affected_if":["authoritative-only","auth-required"],"who_is_affected":"Operators running Unbound 1.26.1 or earlier as a recursive resolver that serves clients. The attack needs a client able to send recursive queries and a delegated authority that returns specially crafted replies, so resolvers limited to trusted networks have much less exposure. Authoritative-only deployments are not described as affected.","user_interaction":"no","needs_special_setup":"unknown","severity_if_unknown":"medium"},"cost_usd":0.000634,"input_tokens":3407,"output_tokens":587,"severity_before":"medium"},"analyst_status":null,"analyst_note":null,"search":"'-2026':13A,16A '-96405':14A,17A '1.26.1':29B,73C 'access':118C 'actor':113C 'aggreg':43B,89C 'author':125C 'budget':45B,94C 'chain':54B,96C 'compress':32B,55B,76C,97C 'compression-point':31B,75C 'control':120C 'cpu':8A,61B,107C 'craft':4A,50B,129C 'cve':12A,15A 'decompress':11A,44B,92C 'decompression-work':91C 'degrad':62B,136C 'deleg':124C 'dns':2A,18B 'domain':37B,83C 'domain-nam':36B,82C 'exhaust':7A 'exploit':132C 'follow':109C 'general':139C 'heavi':60B 'host':22B 'inbound':47B,90C 'includ':28B,71C 'individu':81C 'lab':66C 'limit':30B,74C 'lot':105C 'make':57B 'malici':112C 'mani':53B,95C 'messag':48B,101C 'name':10A,38B,84C 'nlnet':65C 'oper':39B,85C 'ordinarili':123C 'packag':19B 'per':35B,46B 'perform':64B,140C 'pointer':33B,56B,77C,98C 'queri':117C 'recurs':116C 'recursive-queri':115C 'repli':5A,51B,130C 'resolv':3A 'result':102C 'self':21B 'self-host':20B 'serv':127C 'special':128C 'spend':59B 'travers':34B,78C 'unbound':1A,23B,24B,58B,67C,137C 'usag':108C 'version':72C 'vulner':134C 'work':93C","nicknames":[],"mitigations":[],"who_affected":"Operators running Unbound 1.26.1 or earlier as a recursive resolver that serves clients. The attack needs a client able to send recursive queries and a delegated authority that returns specially crafted replies, so resolvers limited to trusted networks have much less exposure. Authoritative-only deployments are not described as affected.","tier":"C","verified":{},"analyst_revisit_at":null,"first_public_at":"2026-10-21T09:17:08+00:00","kev":null,"cvss_vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L","cvss_by":"sep@nlnetlabs.nl","poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-96405","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-96405","severity":null,"published_at":"2026-10-21T09:17:08+00:00","modified_at":"2026-10-22T15:22:40+00:00","first_seen_at":"2026-10-23T21:57:28+00:00","fetched_at":"2026-10-23T22:29:01+00:00","note":null},{"source":"epss","external_id":"CVE-2026-96405","url":"https://api.first.org/data/v1/epss?cve=CVE-2026-96405","severity":null,"published_at":null,"modified_at":null,"first_seen_at":"2026-10-24T13:15:54+00:00","fetched_at":"2026-10-24T13:15:54+00:00","note":null}],"documents":[],"notice":"Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai"}