{"id":"CVE-2026-123603","kind":"vulnerability","aliases":["CVE-2026-123603"],"related":[],"title":"Hickory DNS: IPv4-mapped IPv6 addresses bypass answer and access filters","description":"hickory-proto and hickory-resolver 0.26.0 before 0.26.2, hickory-server 0.25.0-alpha.1 before 0.26.2, and hickory-recursor 0.25.0-alpha.3 through 0.26.0-alpha.1 fail to canonicalize IPv4-mapped IPv6 addresses when checking deny_answers, deny_server, or AccessControlSet rules. Attackers can use IPv4-mapped addresses to evade answer filtering, trigger queries to denied nameservers, or reach hickory-server library deployments on dual-stack IPv6 sockets from denied clients.","summary":"Several Hickory DNS Rust crates fail to normalize IPv4-mapped IPv6 addresses when checking deny_answers, deny_server and access control rules. An attacker can use such addresses to slip past DNS answer filtering, reach denied nameservers, or query a dual-stack hickory-server from clients it should block.","severity":"medium","cvss":6.9,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["dns","hickory","package","rust","self-hosted"],"not_affected_if":["ipv4-only","no-deny-rules","not-using-hickory"],"how_to_check":"- Check the crate versions in `Cargo.lock` for `hickory-proto`, `hickory-resolver`, `hickory-server` and `hickory-recursor`.\n- Look for `deny_answers`, `deny_server` or `AccessControlSet` in your Hickory configuration and code.\n- Check whether the server listens on IPv6 dual-stack sockets.","fix":"- `hickory-proto` and `hickory-resolver`: `0.26.2` (from 0.26.0 before 0.26.2)\n- `hickory-server`: `0.26.2` (from 0.25.0-alpha.1 before 0.26.2)\n- `hickory-recursor`: unknown (affected range 0.25.0-alpha.3 through 0.26.0-alpha.1; the sources do not name a fixed version)","status":"open","published_at":"2026-11-08T02:16:55+00:00","first_seen_at":"2026-11-08T02:21:14+00:00","triaged_at":"2026-11-08T02:24:37+00:00","updated_at":"2026-11-08T02:24:37+00:00","category":"package","confidence":0.7,"triage":{"at":"2026-11-08T02:24:37Z","model":"claude-haiku-5-5","output":{"fix":"- `hickory-proto` and `hickory-resolver`: `0.26.2` (from 0.26.0 before 0.26.2)\n- `hickory-server`: `0.26.2` (from 0.25.0-alpha.1 before 0.26.2)\n- `hickory-recursor`: unknown (affected range 0.25.0-alpha.3 through 0.26.0-alpha.1; the sources do not name a fixed version)","reach":"network","title":"Hickory DNS: IPv4-mapped IPv6 addresses bypass answer and access filters","impact":"medium","summary":"Several Hickory DNS Rust crates fail to normalize IPv4-mapped IPv6 addresses when checking deny_answers, deny_server and access control rules. An attacker can use such addresses to slip past DNS answer filtering, reach denied nameservers, or query a dual-stack hickory-server from clients it should block.","audience":"developers","category":"package","nicknames":[],"who_cares":["rust","dns","hickory","self-hosted"],"confidence":0.7,"fix_status":"available","needs_auth":"no","worst_case":"Denied clients or nameservers are reached, bypassing DNS filtering rules","analyst_note":"","how_to_check":"- Check the crate versions in `Cargo.lock` for `hickory-proto`, `hickory-resolver`, `hickory-server` and `hickory-recursor`.\n- Look for `deny_answers`, `deny_server` or `AccessControlSet` in your Hickory configuration and code.\n- Check whether the server listens on IPv6 dual-stack sockets.","plain_action":"","needs_analyst":false,"not_affected_if":["no-deny-rules","ipv4-only","not-using-hickory"],"who_is_affected":"Applications that use the affected Hickory crates for DNS answer filtering, nameserver deny rules or access control. Exposure is highest where hickory-server runs on dual-stack IPv6 sockets and accepts clients that should be denied. Projects that do not use these crates or these deny and access rules can skip it.","user_interaction":"no","needs_special_setup":"yes","severity_if_unknown":"medium"},"cost_usd":0.000815,"input_tokens":4394,"output_tokens":751,"severity_before":"medium"},"analyst_status":null,"analyst_note":null,"search":"'-123603':15A,18A '-2026':14A,17A '0.25.0':91C,99C '0.26.0':85C,102C '0.26.2':87C,94C 'access':11A,46B 'accesscontrolset':119C 'address':7A,38B,54B,111C,127C 'alpha.1':92C,103C 'alpha.3':100C 'answer':9A,42B,59B,115C,130C 'attack':50B,121C 'block':77B 'bypass':8A 'canonic':106C 'check':40B,113C 'client':74B,152C 'control':47B 'crate':30B 'cve':13A,16A 'deni':41B,43B,62B,114C,116C,135C,151C 'deploy':143C 'dns':2A,19B,28B,58B 'dual':68B,146C 'dual-stack':67B,145C 'evad':129C 'fail':31B,104C 'filter':12A,60B,131C 'hickori':1A,20B,27B,71B,79C,83C,89C,97C,140C 'hickory-proto':78C 'hickory-recursor':96C 'hickory-resolv':82C 'hickory-serv':70B,88C,139C 'host':25B 'ipv4':4A,35B,108C,125C 'ipv4-mapped':3A,34B,107C,124C 'ipv6':6A,37B,110C,148C 'librari':142C 'map':5A,36B,109C,126C 'nameserv':63B,136C 'normal':33B 'packag':21B 'past':57B 'proto':80C 'queri':65B,133C 'reach':61B,138C 'recursor':98C 'resolv':84C 'rule':48B,120C 'rust':22B,29B 'self':24B 'self-host':23B 'server':44B,72B,90C,117C,141C 'sever':26B 'slip':56B 'socket':149C 'stack':69B,147C 'trigger':132C 'use':52B,123C","nicknames":[],"mitigations":[],"who_affected":"Applications that use the affected Hickory crates for DNS answer filtering, nameserver deny rules or access control. Exposure is highest where hickory-server runs on dual-stack IPv6 sockets and accepts clients that should be denied. Projects that do not use these crates or these deny and access rules can skip it.","tier":"C","verified":{},"analyst_revisit_at":null,"fix_status":"available","audience":"developers","plain_action":null,"pkeys":[],"ptokens":[],"labels":["dns","hickory","medium","package","rust","selfhosted"],"campaign_type":null,"search_a":"'-123603':15A,18A '-2026':14A,17A 'access':11A 'address':7A 'answer':9A 'bypass':8A 'cve':13A,16A 'dns':2A 'filter':12A 'hickori':1A 'ipv4':4A 'ipv4-mapped':3A 'ipv6':6A 'map':5A","search_b":"'access':46B 'address':38B,54B 'answer':42B,59B 'attack':50B 'block':77B 'check':40B 'client':74B 'control':47B 'crate':30B 'deni':41B,43B,62B 'dns':19B,28B,58B 'dual':68B 'dual-stack':67B 'fail':31B 'filter':60B 'hickori':20B,27B,71B 'hickory-serv':70B 'host':25B 'ipv4':35B 'ipv4-mapped':34B 'ipv6':37B 'map':36B 'nameserv':63B 'normal':33B 'packag':21B 'past':57B 'queri':65B 'reach':61B 'rule':48B 'rust':22B,29B 'self':24B 'self-host':23B 'server':44B,72B 'sever':26B 'slip':56B 'stack':69B 'use':52B","search_c":"'0.25.0':91C,99C '0.26.0':85C,102C '0.26.2':87C,94C 'accesscontrolset':119C 'address':111C,127C 'alpha.1':92C,103C 'alpha.3':100C 'answer':115C,130C 'attack':121C 'canonic':106C 'check':113C 'client':152C 'deni':114C,116C,135C,151C 'deploy':143C 'dual':146C 'dual-stack':145C 'evad':129C 'fail':104C 'filter':131C 'hickori':79C,83C,89C,97C,140C 'hickory-proto':78C 'hickory-recursor':96C 'hickory-resolv':82C 'hickory-serv':88C,139C 'ipv4':108C,125C 'ipv4-mapped':107C,124C 'ipv6':110C,148C 'librari':142C 'map':109C,126C 'nameserv':136C 'proto':80C 'queri':133C 'reach':138C 'recursor':98C 'resolv':84C 'rule':120C 'server':90C,117C,141C 'socket':149C 'stack':147C 'trigger':132C 'use':123C","first_public_at":"2026-09-03T21:54:57+00:00","kev":null,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X","cvss_by":"disclosure@vulncheck.com","poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-123603","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-123603","severity":null,"published_at":"2026-11-08T02:16:55+00:00","modified_at":"2026-11-08T02:16:55+00:00","first_seen_at":"2026-11-08T02:21:14+00:00","fetched_at":"2026-11-08T02:21:14+00:00","note":null}],"documents":[{"id":99357,"url":"https://github.com/hickory-dns/hickory-dns/security/advisories/GHSA-4jwp-xjwm-333g","title":"Vendor advisory: github.com","kind":"vendor","source":"nvd","publisher":"vendor","text":null,"published_at":"2026-09-03T21:54:57+00:00","relation":"advisory","confidence":null,"note":"Vendor advisory: github.com"},{"id":99358,"url":"https://www.vulncheck.com/advisories/hickory-dns-missing-ipv4-mapped-ipv6-canonicalization-access-control-bypass","title":"Third-party advisory: www.vulncheck.com","kind":"advisory","source":"nvd","publisher":"research","text":null,"published_at":null,"relation":"advisory","confidence":null,"note":"Third-party advisory: www.vulncheck.com"}],"exploit_sources":[],"notice":"Free to read, with fair use of about 60 pages a minute. For higher limits or API access: sales@infrastack.ai"}