CVE-2026-77860

Name
CVE-2026-77860
Description
In NLnetLabs Unbound 1.20.0 up to and including 1.26.0, a vulnerability on the 'serve-expired' code path can cause a double decrement on the 'wait-limit' counter per client IP essentially bypassing one of the counter measures that was introduced for DNSBomb (CVE-2024-33655). A malicious actor can exploit this by controlling an authoritative zone with short TTL, so cached entries expire quickly. Each 'slow' query, one the attacker's authoritative never answers, is followed by one query for an expired cached name, which is answered immediately via the 'serve-expired' path and decrements the counter twice. This second query was named 'pump'. By alternating slow queries and pumps, the attacker keeps the per-client counter at or below the configured 'wait-limit' indefinitely, and can hold an arbitrary number of pending queries from a single source IP, up to the global mesh quota (num-queries-per-thread); eventually bypassing one of the counter measures introduced for DNSBomb (CVE-2024-33655). This vulnerability is present on the 'serve-expired' code path.
NVD Severity
unknown
Other trackers
Mailing lists
Exploits
Forges
GitHub (code, issues), Aports (code, issues)

References

Type URI
Patch https://www.nlnetlabs.nl/downloads/unbound/CVE-2026-77860.txt

Match rules

CPE URI Source package Min version Max version
cpe:2.3:a:nlnetlabs:unbound:*:*:*:*:*:*:*:* unbound >= 1.20.0 < 1.26.1

Vulnerable and fixed packages

Source package Branch Version Maintainer Status
unbound edge-main 1.26.1-r0 Jakub Jirutka <jakub@jirutka.cz> fixed
unbound edge-main 1.26.0-r0 Jakub Jirutka <jakub@jirutka.cz> possibly vulnerable
unbound edge-main 1.25.2-r0 Jakub Jirutka <jakub@jirutka.cz> possibly vulnerable
unbound edge-main 1.25.1-r0 Jakub Jirutka <jakub@jirutka.cz> possibly vulnerable
unbound edge-main 1.25.0-r0 Jakub Jirutka <jakub@jirutka.cz> possibly vulnerable
unbound edge-main 1.24.2-r1 Jakub Jirutka <jakub@jirutka.cz> possibly vulnerable
unbound edge-main 1.24.2-r0 Jakub Jirutka <jakub@jirutka.cz> possibly vulnerable
unbound edge-main 1.24.1-r0 Jakub Jirutka <jakub@jirutka.cz> possibly vulnerable
unbound edge-main 1.24.0-r0 Jakub Jirutka <jakub@jirutka.cz> possibly vulnerable
unbound edge-main 1.23.1-r1 Jakub Jirutka <jakub@jirutka.cz> possibly vulnerable
unbound edge-main 1.23.1-r0 Jakub Jirutka <jakub@jirutka.cz> possibly vulnerable
unbound edge-main 1.23.0-r2 Jakub Jirutka <jakub@jirutka.cz> possibly vulnerable
unbound edge-main 1.23.0-r1 Jakub Jirutka <jakub@jirutka.cz> possibly vulnerable
unbound edge-main 1.23.0-r0 Jakub Jirutka <jakub@jirutka.cz> possibly vulnerable
unbound edge-main 1.22.0-r0 Jakub Jirutka <jakub@jirutka.cz> possibly vulnerable
unbound edge-main 1.21.1-r0 Jakub Jirutka <jakub@jirutka.cz> possibly vulnerable
unbound edge-main 1.20.0-r0 Jakub Jirutka <jakub@jirutka.cz> possibly vulnerable
unbound 3.24-main 1.25.2-r2 Jakub Jirutka <jakub@jirutka.cz> possibly vulnerable
unbound 3.24-main 1.25.2-r1 Jakub Jirutka <jakub@jirutka.cz> possibly vulnerable
unbound 3.24-main 1.25.2-r0 Jakub Jirutka <jakub@jirutka.cz> possibly vulnerable
unbound 3.24-main 1.25.1-r0 Jakub Jirutka <jakub@jirutka.cz> possibly vulnerable
unbound 3.23-main 1.25.2-r1 Jakub Jirutka <jakub@jirutka.cz> possibly vulnerable
unbound 3.23-main 1.25.2-r0 Jakub Jirutka <jakub@jirutka.cz> possibly vulnerable
unbound 3.23-main 1.24.2-r0 Jakub Jirutka <jakub@jirutka.cz> possibly vulnerable
unbound 3.22-main 1.25.2-r1 Jakub Jirutka <jakub@jirutka.cz> possibly vulnerable
unbound 3.22-main 1.25.2-r0 Jakub Jirutka <jakub@jirutka.cz> possibly vulnerable
unbound 3.22-main 1.23.1-r1 Jakub Jirutka <jakub@jirutka.cz> possibly vulnerable
unbound 3.22-main 1.23.1-r0 Jakub Jirutka <jakub@jirutka.cz> possibly vulnerable
unbound 3.22-main 1.23.0-r2 Jakub Jirutka <jakub@jirutka.cz> possibly vulnerable
unbound 3.22-main 1.21.1-r0 None possibly vulnerable
unbound 3.22-main 1.20.0-r0 None possibly vulnerable
unbound 3.21-main 1.22.0-r1 Jakub Jirutka <jakub@jirutka.cz> possibly vulnerable
unbound 3.21-main 1.22.0-r0 Jakub Jirutka <jakub@jirutka.cz> possibly vulnerable
unbound 3.21-main 1.21.1-r0 None possibly vulnerable
unbound 3.21-main 1.20.0-r0 None possibly vulnerable
unbound 3.20-main 1.20.0-r2 Jakub Jirutka <jakub@jirutka.cz> possibly vulnerable
unbound 3.20-main 1.20.0-r1 Jakub Jirutka <jakub@jirutka.cz> possibly vulnerable
unbound 3.20-main 1.20.0-r0 Jakub Jirutka <jakub@jirutka.cz> possibly vulnerable
unbound 3.19-main 1.20.0-r2 Jakub Jirutka <jakub@jirutka.cz> possibly vulnerable
unbound 3.19-main 1.20.0-r1 Jakub Jirutka <jakub@jirutka.cz> possibly vulnerable
unbound 3.19-main 1.20.0-r0 Jakub Jirutka <jakub@jirutka.cz> possibly vulnerable