-
-
release-1.23.15bf82f24 · ·
Unbound 1.23.1 This security release fixes the Rebirthday Attack CVE-2025-5994. This re-opens up resolvers to a birthday paradox, for EDNS client subnet servers that respond with non-ECS answers. It only affects Unbound when compiled with --enable-subnet, and subnetmod is enabled with config options that send ECS information to upstream servers. The CVE is described here https://nlnetlabs.nl/downloads/unbound/CVE-2025-5994.txt We would like to thank Xiang Li (AOSP Lab, Nankai University) for discovering and responsibly disclosing the vulnerability. Bug Fixes: - Fix RebirthDay Attack CVE-2025-5994, reported by Xiang Li from AOSP Lab Nankai University.
-
release-1.22.00076736f · ·
Unbound 1.22.0 This release has an option to harden against unverified glue, it is enabled with `harden-unverified-glue: yes`. It was contributed by Karthik Umashankar from Microsoft. This protects Unbound against bad glue, that is out of zone, by performing a lookup for it. Because it uses the original information as a last resort if nothing works, it should not give lookup failures, and add protection. There are options to configure the scrubbing for NS records and the CNAME scrubbing and the max global quota lookup limit from previous security fix releases. They can be configured with the options `iter-scrub-ns`, `iter-scrub-cname` and `max-global-quota`. For redis use, with cachedb, it is possible to specify the timeout for the initial connection separately from the timeout for commands. With the options `redis-command-timeout: 20` and `redis-connect-timeout: 200` they can be set separately, for a longer connect attempt, but a short command timeout to keep resolution faster. It is possible to log with ISO8601 format with `log-time-iso: yes` this also logs time in milliseconds. Useful if the server writes to file, syslog may have its own format. DNS over QUIC is support is added, if compiled with libngtcp2 and with the openssl+quic that it uses. Use `--with-libngtcp2` for that, and enable it with `quic-port: 853`. There is a post about it on https://blog.nlnetlabs.nl/dns-over-quic-in-unbound [that is to appear after the release]. Features - Add iter-scrub-ns, iter-scrub-cname and max-global-quota configuration options. - Merge patch to fix for glue that is outside of zone, with `harden-unverified-glue`, from Karthik Umashankar (Microsoft). Enabling this option protects the Unbound resolver against bad glue, that is unverified out of zone glue, by resolving them. It uses the records as last resort if there is no other working glue. - Add redis-command-timeout: 20 and redis-connect-timeout: 200, that can set the timeout separately for commands and the connection set up to the redis server. If they are not specified, the redis-timeout value is used. - Fix #1144: [FR] log timestamps in ISO8601 format with timezone. This adds the option `log-time-iso: yes` that logs in ISO8601 format. - Merge #871: DNS over QUIC. This adds `quic-port: 853` and `quic-size: 8m` that enable dnsoverquic, and the counters `num.query.quic` and `mem.quic` in the statistics output. The feature needs to be enabled by compiling with libngtcp2, with `--with-libngtcp2=path` and libngtcp2 needs openssl+quic, pass that with `--with-ssl=path` to compile unbound as well. Bug Fixes - Fix #1126: unbound-control-setup hangs while testing for openssl presence starting from version 1.21.0. - Add cross platform freebsd, openbsd and netbsd to github ci. - Fix for char signedness warnings on NetBSD. - Fix #1127: error: "memory exhausted" when defining more than 9994 local-zones. - Fix documentation for cache_fill_missing function. - Fix #1130: Loads of logs: "validation failure: key for validation <domain>. is marked as invalid because of a previous" for non-DNSSEC signed zone. - Fix that when rpz is applied the message does not get picked up by the validator. That stops validation failures for the message. - Fix that stub-zone and forward-zone clauses do not exhaust memory for long content. - Unit test for auth zone transfer TLS, and TLS failure. - Fix to print port number in logs for auth zone transfer activities. - Merge #1132: b.root renumbering. - Fix for #1132, adjusted unit test for change in the test file. - Fix for #1132, comment about adjusted copy of reference check. - Merge #1135: Add new IANA trust anchor. - Fix config file read for dnstap-sample-rate. - Fix alloc-size and calloc-transposed-args compiler warnings. - Fix comment to not trigger doxygen unknown command. - Fix to limit NSEC and NSEC3 TTL when aggressive nsec is enabled (RFC9077). - Add unit test for ttl limit for aggressive nsec. - Fix and add comments in testdata/val_negcache_ttl.rpl. - Merge #1140: Fix spelling mistake in comments. - Fix doxygen warnings by commenting out CLANG_ASSISTED_PARSING, CLANG_ADD_INC_PATHS, CLANG_OPTIONS and CLANG_DATABASE_PATH; they were already disabled. - Fix dns64 with prefetch that the prefetch is stored in cache. - Attempt to further fix doh_downstream_buffer_size.tdir flakiness. - More clear text for prefetch and minimal-responses in the unbound.conf man page. - Merge #1143: Fix cache update when serve expired is used. Expired records are favored over resolution and validation failures when serve-expired is used. - Fix negative cache NSEC3 parameter compares for zero length NSEC3 salt. - Fix unbound dnstap socket test program analyzer warnings about unused variable assignments and variable initialization. - Fix #1149: unbound-control-setup hangs sometimes depending on the openssl version. - Fix #1128: Cannot override tcp-upstream and tls-upstream with forward-tcp-upstream and forward-tls-upstream. - Fix to limit NSEC TTL for messages from cachedb. Fix to limit the prefetch ttl for messages after a CNAME with short TTL. - Fix for dnstap compile of doqclient with doq disabled. - Fix cookie_file test sporadic fails for time change during the test. - Fix add reallocarray to alloc stats unit test, and disable override of strdup in unbound-host, and the result of config get option is freed properly. - Fix to disable detection of quic configured ports when quic is not compiled in. - Fix harden-unverified-glue for AAAA cache_fill_missing lookups. - Fix contrib/aaaa-filter-iterator.patch for change in call signature for cache_fill_missing. - Fix to display warning if quic-port is set but dnsoverquic is not enabled when compiled. - Fix dnsoverquic to extend the number of streams when one is closed. - Fix for dnstap with dnscrypt and dnstap without dnsoverquic. - Fix for dnsoverquic and dnstap to use the correct dnstap environment.
-
-
release-1.21.1b7c61d7c · ·
Unbound 1.21.1 This security release fixes CVE-2024-8508. A vulnerability has been discovered in Unbound when handling replies with very large RRsets that Unbound needs to perform name compression for. Malicious upstreams responses with very large RRsets can cause Unbound to spend a considerable time applying name compression to downstream replies. This can lead to degraded performance and eventually denial of service in well orchestrated attacks. The vulnerability can be exploited by a malicious actor querying Unbound for the specially crafted contents of a malicious zone with very large RRsets. Before Unbound replies to the query it will try to apply name compression which was an unbounded operation that could lock the CPU until the whole packet was complete. Unbound version 1.21.1 introduces a hard limit on the number of name compression calculations it is willing to do per packet. Packets that need more compression will result in semi-compressed packets or truncated packets, even on TCP for huge messages, to avoid locking the CPU for long. This change should not affect normal DNS traffic. We would like to thank Toshifumi Sakaguchi for discovering and responsibly disclosing the vulnerability. Bug Fixes: - Fix CVE-2024-8508, unbounded name compression could lead to denial of service.
-
-