{"answers":{"affected":"It affects 1 product.","exploited":"There is no known exploitation of CVE-2026-54478 in the wild and no public exploit code.","fix":"Upgrade to a fixed version.","what":"CVE-2026-54478 is a low-severity vulnerability in Nlnetlabs Unbound, published on 22 Jul 2026. An attacker can exploit it over the internet without logging in, with no action from the victim."},"fix_prompt":"Check this codebase for CVE-2026-54478 and fix it if it is affected.\n\nWhat it is: CVE-2026-54478 is a low-severity vulnerability in Nlnetlabs Unbound, published on 22 Jul 2026. An attacker can exploit it over the internet without logging in, with no action from the victim.\nExploitation: There is no known exploitation of CVE-2026-54478 in the wild and no public exploit code.\n\nAffected product: Nlnetlabs Unbound. No package-level version data is available, so check the vendor advisory linked from the reference page.\n\nTask:\n1. Search the dependency manifests and lockfiles (for example package.json, package-lock.json, requirements.txt, poetry.lock, uv.lock, pom.xml, build.gradle, go.mod, Cargo.lock, Gemfile.lock) and any Dockerfiles for the affected packages, including transitive dependencies.\n2. If an affected version is in use, upgrade it to the fixed version for its release line with the project's package manager, so the lockfile is regenerated. Prefer the smallest upgrade that fixes it.\n3. If there is no fix, or the upgrade would break the build, do not guess: explain the risk and the safest workaround instead.\n4. Run the tests and summarise what changed and why.\n5. If nothing in the project is affected, say so and change nothing.\n\nReference: https://insights.sbomify.com/CVE-2026-54478/ (Markdown: https://insights.sbomify.com/CVE-2026-54478/index.md)","id":"CVE-2026-54478","markdown":"https://insights.sbomify.com/CVE-2026-54478/index.md","name":"CVE-2026-54478","record":{"aliases":["ALPINE-CVE-2026-54478","AZL-92958","DEBIAN-CVE-2026-54478","ECHO-6f24-cdd7-9e3e","GHSA-pp7x-83x2-99v7","UBUNTU-CVE-2026-54478"],"analysis":{"component_type":"server_software","fix_type":"upgrade","impacts":["security_bypass"],"network_reachable":"yes","non_default_config":true,"product_category":"DNS resolver","requires_auth":"none","summary":"An off-path attacker can bypass DNS Cookie protections in Unbound when using proxy-protocol, allowing spoofed source validation.","user_interaction":"not_required","vuln_class":"security_feature_bypass"},"analysis_generated_by":"qwen3.8-flash-next","assigner":"NLnet Labs","cpe":[{"product":"unbound","vendor":"nlnetlabs"}],"cvss":{"score":3.7,"severity":"low","source":"cna","vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N","version":"3.1"},"cwes":[{"id":"CWE-290","name":"Authentication Bypass by Spoofing"}],"description":"In NLnet Labs Unbound 1.18.0 up to and including 1.25.1, when Unbound listens on a 'proxy-protocol-port' interface with 'answer-cookie: yes', the RFC 9018 server-cookie SipHash is computed over the proxy's wire address instead of the PROXYv2-declared client. One server cookie obtained through a given proxy node therefore validates for every PROXYv2-declared source behind that node. On a UDP+proxy-protocol front, an off-path attacker can harvest one cookie with a single legitimate query, then replay it under any spoofed source and pass DNS Cookie checks that were deployed to defeat this in the first place.","ecosystems":[],"exploits":{"exploitdb":0,"first_seen":null,"github_poc":0,"max_poc_stars":null,"metasploit":0,"nuclei":0,"refs":[],"tier":"none_known"},"has_fix":true,"headline":"DNS Cookie bypass when combined with proxy-protocol use","id":"CVE-2026-54478","indexable":true,"kev":null,"kind":"cve","links":{"ecosystem":null,"product":"nlnetlabs:unbound","products":["nlnetlabs:unbound"],"type":"security_feature_bypass","year":"2026"},"n_packages":0,"n_references":1,"next":{"headline":"EVoke Systems EVoke CSMS Insufficient Session Expiration","id":"CVE-2026-54479"},"packages":[],"prev":{"headline":"Gardyn IoT Hub Improper Neutralization of HTTP Headers for Scripting Syntax","id":"CVE-2026-54477"},"products":["Unbound"],"published":"2026-07-22","related":[{"cvss_score":9.1,"headline":"Heap buffer overflow and possible Remote Code Execution when digesting DNSKEY","id":"CVE-2026-81642","kev_date_added":null,"published":"2026-09-16"},{"cvss_score":9.1,"headline":"Possible arbitrary code execution during DNSSEC validation","id":"CVE-2026-33278","kev_date_added":null,"published":"2026-05-20"},{"cvss_score":8.7,"headline":"Heap overflow with multiple NSID, COOKIE, PADDING EDNS options","id":"CVE-2026-42944","kev_date_added":null,"published":"2026-05-20"},{"cvss_score":8.7,"headline":"Crash during DNSSEC validation of malicious content","id":"CVE-2026-42959","kev_date_added":null,"published":"2026-05-20"},{"cvss_score":8.4,"headline":"CNAME synthesis could lead to heap corruption","id":"CVE-2026-82717","kev_date_added":null,"published":"2026-09-16"},{"cvss_score":7.5,"headline":"Possible heap buffer overflow during DNSSEC canonicalization","id":"CVE-2026-81634","kev_date_added":null,"published":"2026-09-16"},{"cvss_score":7.5,"headline":"Remote DNS-over-QUIC denial of service due to `quic-size` budget bypass","id":"CVE-2026-32665","kev_date_added":null,"published":"2026-07-22"}],"sources":[{"class":"attribution","licence":"CVE Terms of Use (MITRE)","name":"CVE List","prefix":"CVE"},{"class":"attribution","licence":"US public information, NVD API terms","name":"NVD"},{"class":"attribution","licence":"CWE Terms of Use","name":"CWE (MITRE)"},{"class":"attribution","licence":"FIRST CVSS licence","name":"CVSS (FIRST)"}],"ssvc":{"automatable":"no","exploitation":"none","technical_impact":"partial"},"state":"PUBLISHED","updated":"2026-07-22","vendors":["NLnet Labs"]},"summary":"An off-path attacker can bypass DNS Cookie protections in Unbound when using proxy-protocol, allowing spoofed source validation.","url":"https://insights.sbomify.com/CVE-2026-54478/"}