| 1.1.1.4 |
| 29-Jan-2026 |
christos | Import bind-9.20.18 (previous was 9.20.11)
BIND 9.20.18#
Security Fixes#
[CVE-2025-13878] Fix incorrect length checks for BRID and HHIT records. d4c0d61701
Malformed BRID and HHIT records could trigger an assertion failure. This has been fixed.
ISC would like to thank Vlatko Kosturjak from Marlink Cyber for bringing this vulnerability to our attention. [GL #5616]
Feature Changes#
Support compilation with cmocka 2.0.0+ bb9234c6ce
The assert_in_range() function was deprecated in favor of assert_int_in_range() and assert_uint_in_range(). Add compatibility shims for cmocka<2.0.0 and use the new functions. [GL #5699] [GL !11437]
Add more information to the rndc recursing output about fetches. 9766feb4df
This adds more information about the active fetches for debugging and diagnostic purposes. [GL !11358]
Bug Fixes#
Make key rollovers more robust. 7a70d05b5d
A manual rollover when the zone is in an invalid DNSSEC state causes predecessor keys to be removed too quickly. Additional safeguards to prevent this have been added. DNSSEC records will not be removed from the zone until the underlying state machine has moved back into a valid DNSSEC state. [GL #5458] [GL !11329]
Fix a catalog zones issue when a member zone could fail to load. 95cbc2c327
A catalog zone's member zone could fail to load in some rare cases, when the internally generated zone configuration string was exceeding 512 bytes. That condition only was not enough for the issue to arise, but it was a necessary condition. This could happen, for example, if the catalog zone's default primary servers list contained a large number of items. This has been fixed. [GL #5658] [GL !11349]
Allow glue in delegations with QTYPE=ANY. 441158ac18
When a query for type ANY triggered a delegation response, all additional data was omitted from the response, including mandatory glue. This has been corrected. [GL #5659] [GL !11283]
Adding NSEC3 opt-out records could leave invalid records in chain. 1b90296e1f
When creating an NSEC3 opt-out chain, a node in the chain could be removed too soon, causing the previous NSEC3 being unable to be found, resulting in invalid NSEC3 records to be left in the zone. This has been fixed. [GL #5671] [GL !11340]
Fix slow speed of NSEC3 optout large delegation zone signing. 88f915b77b
BIND 9.20 takes much more time signing a large delegation zone with NSEC3 optout compared to version 9.18. This has been restored. [GL #5672] [GL !11362]
Reconfigure NSEC3 opt-out zone to NSEC causes zone to be invalid. 1d0e19c612
A zone that is signed with NSEC3, opt-out enabled, and then reconfigured to use NSEC, causes the zone to be published with missing NSEC records. This has been fixed. [GL #5679] [GL !11401]
Fix a possible catalog zone issue during reconfiguration. 911b45b2b3
The named process could terminate unexpectedly during reconfiguration when a catalog zone update was taking place at the same time. This has been fixed. [GL !11386]
Fix the charts in the statistics channel. 7c7b01dd65
The charts in the statistics channel could sometimes fail to render in the browser, and were completely disabled for Mozilla-based browsers for historical reasons. This has been fixed. [GL !11364]
BIND 9.20.17#
New Features#
Add spatch to detect implicit bool/int/result cast. 02be363d1f
Detection of implicit cast from a boolean into an int, or an isc_result_t into a boolean (either in an assignement or return position).
If such pattern is found, a warning comment is added into the code (and the CI will fails) so the error can be spotted and manually fixed. [GL !11237]
Feature Changes#
Use atomics for CMM_{LOAD,STORE}_SHARED with ThreadSanitizer. 94fa721705
Upstream has removed the atomics implementation of CMM_LOAD_SHARED and CMM_STORE_SHARED as these can be used also with non-stdatomics types. As we only use the CMM api with stdatomics types, we can restore the previous behaviour to prevent ThreadSanitizer warnings. [GL #5660] [GL !11290]
Provide more information when the memory allocation fails. 6749725610
Provide more information about the failure when the memory allocation fails. [GL !11304]
Reduce the number of outgoing queries. 457b470e96
Reduces the number of outgoing queries when resolving the nameservers for delegation points. This helps the DNS resolver with cold cache resolve client queries with complex delegation chains and redirections. [GL !11258]
Bug Fixes#
Fix the spurious timeouts while resolving names. d96cf874fb
Sometimes the loops in the resolving (e.g. to resolve or validate ns1.example.com we need to resolve ns1.example.com) were not properly detected leading to spurious 10 seconds delay. This has been fixed and such loops are properly detected. [GL #3033], #5578 [GL !11298]
Fix bug where zone switches from NSEC3 to NSEC after retransfer. 3b40ffbf83
When a zone is re-transferred, but the zone journal on an inline-signing secondary is out of sync, the zone could fall back to using NSEC records instead of NSEC3. This has been fixed. [GL #5527] [GL !11274]
Attach socket before async streamdns_resume_processing. bb9451c73f
Call to streamdns_resume_processing is asynchronous but the socket passed as argument is not attached when scheduling the call.
While there is no reproducible way (so far) to make the socket reference number down to 0 before streamdns_resume_processing is called, attach the socket before scheduling the call. This guard against an hypothetic case where, for some reasons, the socket refcount would reach 0, and be freed from memory when streamdns_resume_processing is called. [GL #5620] [GL !11260]
AMTRELAY type 0 presentation format handling was wrong. adf104a063
RFC 8777 specifies a placeholder value of "." for the gateway field when the gateway type is 0 (no gateway). This was not being checked for nor emitted when displaying the record. This has been corrected.
Instances of this record will need the placeholder period added to them when upgrading. [GL #5639] [GL !11255]
Fix parsing bug in remote-servers with key or tls. d9400c5967
The remote-servers clause enable the following pattern using a named server-list:
remote-servers a { 1.2.3.4; ... }; remote-servers b { a key foo; };
However, such configuration was wrongly rejected, with an "unexpected token 'foo'" error. Such configuration is now accepted. [GL #5646] [GL !11300]
Fix TLS contexts cache object usage bug in the resolver. 13adf94006
named could terminate unexpectedly when reconfiguring or reloading, and if client-side TLS transport was in use (for example, when forwarding queries to a DoT server). This has been fixed. [GL #5653] [GL !11299]
Fix unitiailized pointer check on getipandkeylist. 5ed0cf091b
Function named_config_getipandkeylist could, in case of error in the early code attempting to get the port or tls-port, make a pointer check on a non-initialized value. This is now fixed. [GL !11306]
Standardize CHECK and RETERR macros. ef714e91ac
previously, there were over 40 separate definitions of CHECK macros, of which most used "goto cleanup", and the rest "goto failure" or "goto out". there were another 10 definitions of RETERR, of which most were identical to CHECK, but some simply returned a result code instead of jumping to a cleanup label.
this has now been standardized throughout the code base: RETERR is for returning an error code in the case of an error, and CHECK is for jumping to a cleanup tag, which is now always called "cleanup". both macros are defined in isc/util.h. [GL !11069]
Adding NSEC3 opt-out records could leave invalid records in chain. 1d83a8ad46
When creating an NSEC3 opt-out chain, a node in the chain could be removed too soon, causing the previous NSEC3 being unable to be found, resulting in invalid NSEC3 records to be left in the zone. This has been fixed.
Closes [#5671](#5671)
BIND 9.20.16#
Feature Changes#
Fix assertion failure from arc4random_uniform with invalid limit. 1040282de7e
When the arc4random_uniform() is called on NetBSD with upper_bound that makes no sense statistically (0 or 1), the call crashes the calling program. Fix this by returning 0 when upper bound is < 2 as does Linux, FreeBSD and NetBSD. (Hint: System CSPRNG should never crash.) [GL #5596] [GL !11151]
Bug Fixes#
Fix dnssec-keygen key collision checking for KEY rrtype keys. ac8b23b80bf
The dnssec-keygen utility program failed to detect possible Key ID collisions with the existing keys generated using the non-default -T KEY option (e.g. for SIG(0)). This has been fixed. [GL #5506] [GL !11128]
Fix shutdown INSIST in dns_dispatchmgr_getblackhole. f0aaaef166c
Previously, named could trigger an assertion in dns_dispatchmgr_getblackhole while shutting down. This has been fixed. [GL #5525] [GL !11162]
Dnssec-verify now uses exit code 1 when failing due to illegal options. 6ead0aa4a2b
Previously, dnssec-verify exited with code 0 if the options could not be parsed. This has been fixed. [GL #5574] [GL !11129]
Prevent assertion failures of dig when server is specified before the -b option. deada63e2b2
Previously, dig could exit with an assertion failure when the server was specified before the dig -b option. This has been fixed. [GL #5609] [GL !11204]
Skip unsupported algorithms when looking for signing key. c346fe88a1b
A mix of supported and unsupported DNSSEC algorithms in the same zone could have caused validation failures. Ignore the DNSSEC keys with unsupported algorithm when looking for the signing keys. [GL #5622] [GL !11210]
Fix configuration bugs involving global defaults. a85d6fb581c
The configuration code for the max-cache-size, dnssec-validation, and response-padding options were unnecessarily complicated, and in the case of max-cache-size, buggy. These have been fixed. The optionmaps variable in configure_view() is no longer needed and has been removed. [GL !11172]
Skip buffer allocations if not logging. 4f601175bd0
Currently, during IXFR we allocate a 2KB buffer for IXFR change logging regardless of the log level. This commit introduces an early check on the log level in dns_diff_print to avoid this.
Results in a speedup from 28% in the test case from issue #5442. [GL !11192]
BIND 9.20.15#
Security Fixes#
[CVE-2025-8677] DNSSEC validation fails if matching but invalid DNSKEY is found. 0d676bf9f23
Previously, if a matching but cryptographically invalid key was encountered during DNSSEC validation, the key was skipped and not counted towards validation failures. named now treats such DNSSEC keys as hard failures and the DNSSEC validation fails immediately, instead of continuing with the next DNSKEYs in the RRset.
ISC would like to thank Zuyao Xu and Xiang Li from the All-in-One Security and Privacy Laboratory at Nankai University for bringing this vulnerability to our attention. [GL #5343]
[CVE-2025-40778] Address various spoofing attacks. 23de94fd236
Previously, several issues could be exploited to poison a DNS cache with spoofed records for zones which were not DNSSEC-signed or if the resolver was configured to not do DNSSEC validation. These issues were assigned CVE-2025-40778 and have now been fixed.
As an additional layer of protection, named no longer accepts DNAME records or extraneous NS records in the AUTHORITY section unless these are received via spoofing-resistant transport (TCP, UDP with DNS cookies, TSIG, or SIG(0)).
ISC would like to thank Yuxiao Wu, Yunyi Zhang, Baojun Liu, and Haixin Duan from Tsinghua University for bringing this vulnerability to our attention. [GL #5414]
[CVE-2025-40780] Cache-poisoning due to weak pseudo-random number generator. 34af35c2df8
It was discovered during research for an upcoming academic paper that a xoshiro128** internal state can be recovered by an external 3rd party, allowing the prediction of UDP ports and DNS IDs in outgoing queries. This could lead to an attacker spoofing the DNS answers with great efficiency and poisoning the DNS cache.
The internal random generator has been changed to a cryptographically secure pseudo-random generator.
ISC would like to thank Prof. Amit Klein and Omer Ben Simhon from Hebrew University of Jerusalem for bringing this vulnerability to our attention. [GL #5484]
New Features#
Add dnssec-policy keys configuration check to named-checkconf. 1f5a0405f72
A new option -k is added to named-checkconf that allows checking the dnssec-policy keys configuration against the configured key stores. If the found key files are not in sync with the given dnssec-policy, the check will fail.
This is useful to run before migrating to dnssec-policy. [GL #5486] [GL !11011]
Feature Changes#
Minor refactor of dst code. c6acbaa020b
Convert the defines to enums. Initialize the tags more explicitly and less ugly. [GL !11038]
Bug Fixes#
Use signer name when disabling DNSSEC algorithms. 986816baa74
disable-algorithms could cause DNSSEC validation failures when the parent zone was signed with the algorithms that were being disabled for the child zone. This has been fixed; disable-algorithms now works on a whole-of-zone basis.
If the zone's name is at or below the disable-algorithms name the algorithm is disabled for that zone, using deepest match when there are multiple disable-algorithms clauses. [GL #5165] [GL !11014]
Rndc sign during ZSK rollover will now replace signatures. d2f551140cd
When performing a ZSK rollover, if the new DNSKEY is omnipresent, the rndc sign command now signs the zone completely with the successor key, replacing all zone signatures from the predecessor key with new ones. [GL #5483] [GL !11017]
Missing DNSSEC information when CD bit is set in query. 968a6be41fb
The RRSIGs for glue records were not being cached correctly for CD=1 queries. This has been fixed. [GL #5502] [GL !10956]
Preserve cache when reload fails and reload the server again. 975aeda10b4
Fixes an issue where failing to reconfigure/reload the server would prevent to preserved the views caches on the subsequent server reconfiguration/reload. [GL #5523] [GL !10988]
Check plugin config before registering. e2260b80702
In named_config_parsefile(), when checking the validity of named.conf, the checking of plugin correctness was deliberately postponed until the plugin is loaded and registered. However, the checking was never actually done: the plugin_register() implementation was called, but plugin_check() was not.
ns_plugin_register() (used by named) now calls the check function before the register function, and aborts if either one fails. ns_plugin_check() (used by named-checkconf) calls only the check function. [GL !11032]
BIND 9.20.14#
Note
The BIND 9.20.14 release was withdrawn after the discovery of a regression in a security fix in it during pre-release testing. BIND 9.20.13# New Features#
Add manual mode configuration option to dnsec-policy. 1e435b107f
Add a new option manual-mode to dnssec-policy. The intended use is that if it is enabled, it will not automatically move to the next state transition, but instead the transition is logged. Only after manual confirmation with rndc dnssec -step the transition is made. [GL #4606] [GL !10880]
Add a new 'servfail-until-ready' configuration option for RPZ. 925af17d21
By default, when named is started it may start answering to queries before the response policy zones are completely loaded and processed. This new feature gives an option to the users to tell named that incoming requests should result in SERVFAIL answer until all the response policy zones are processed and ready. Note that if one or more response policy zones fail to load, named starts responding to queries according to those zones that did load.
Note, that enabling this option has no effect when a DNS Response Policy Service (DNSRPS) interface is used. [GL #5222] [GL !10889]
Support for parsing HHIT and BRID records has been added. 1f051af24d
[GL #5444] [GL !10932]
Removed Features#
Deprecate the "tkey-gssapi-credential" statement. b239a70cac
The tkey-gssapi-keytab statement allows GSS-TSIG to be set up in a simpler and more reliable way than using the tkey-gssapi-credential statement and setting environment variables (e.g. KRB5_KTNAME). Therefore, the tkey-gssapi-credential statement has been deprecated; tkey-gssapi-keytab should be used instead.
For configurations currently using a combination of both tkey-gssapi-keytab and tkey-gssapi-credential, the latter should be dropped and the keytab pointed to by tkey-gssapi-keytab should now only contain the credential previously specified by tkey-gssapi-credential. [GL #4204] [GL !10924]
Obsolete the "tkey-domain" statement. 9352ae65d7
Mark the tkey-domain statement as obsolete, since it has not had any effect on server behavior since support for TKEY Mode 2 (Diffie-Hellman) was removed (in BIND 9.20.0). [GL #4204] [GL !10926]
Feature Changes#
Update clang-format style with options added in newer versions. 0c2c477c31
Add and apply InsertBraces statement to add missing curly braces around one-line statements and use ControlStatementsExceptControlMacros for SpaceBeforeParens to remove space between foreach macro and the brace, e.g. FOREACH (x) { becomes FOREACH(x) {. [GL !10864]
Bug Fixes#
Ensure file descriptors 0-2 are in use. 35dee6eb90
libuv expect file descriptors <= STDERR_FILENO are in use. otherwise, it may abort when closing a file descriptor it opened. [GL #5226] [GL !10908]
Prevent spurious SERVFAILs for certain 0-TTL resource records. 6b266b222c
Under certain circumstances, BIND 9 can return SERVFAIL when updating existing entries in the cache with new NS, A, AAAA, or DS records with 0-TTL. [GL #5294] [GL !10898]
Use DNS_RDATACOMMON_INIT to hide branch differences. a64df9729b
Initialization of the common members of rdata type structures varies across branches. Standardize it by using the DNS_RDATACOMMON_INIT macro for all types, so that new types are more likely to use it, and hence backport more cleanly. [GL #5467] [GL !10834]
RPZ canonical warning displays zone entry incorrectly. d833676515
When an IPv6 rpz prefix entry is entered incorrectly the log message was just displaying the prefix rather than the full entry. This has been corrected. [GL #5491] [GL !10930]
Fix a catalog zone issue when having an unset 'default-primaries' configuration clause. 293e75af28
A catalog zone with an unset default-primaries clause could cause an unexpected termination of the named process after two reloading or reconfiguration commands. This has been fixed. [GL #5494] [GL !10905]
Add and use __attribute__((nonnull)) in dnssec-signzone.c. a8eed36d3e
Clang 20 was spuriously warning about the possibility of passing a NULL file pointer to fprintf(), which uses the 'nonnull' attribute. To silence the warning, the functions calling fprintf() have been marked with the same attribute to assure that NULL can't be passed to them in the first place.
Close #5487 [GL !10913]
RPZ 'servfail-until-ready': skip updating SERVFAIL cache. af2fb26325
In order to not pollute the SERVFAIL cache with the configured SERVFAIL answers while RPZ is loading, set the NS_CLIENTATTR_NOSETFC attribute for the client. [GL !10940]
BIND 9.20.12#
New Features#
Support for parsing the DSYNC record has been added. f440fe712d
[GL #5440] [GL !10820]
Feature Changes#
Adaptive memory allocation strategy for qp-tries. 9a046cbed5
qp-tries allocate their nodes (twigs) in chunks to reduce allocator pressure and improve memory locality. The choice of chunk size presents a tradeoff: larger chunks benefit qp-tries with many values (as seen in large zones and resolvers) but waste memory in smaller use cases.
Previously, our fixed chunk size of 2^10 twigs meant that even an empty qp-trie would consume 12KB of memory, while reducing this size would negatively impact resolver performance.
This MR implements an adaptive chunking strategy that tracks the size of the most recently allocated chunk and doubles the chunk size for each new allocation until reaching a predefined maximum.
This approach effectively balances memory efficiency for small tries while maintaining the performance benefits of larger chunk sizes for bigger data structures. [GL #5445] [GL !10804]
Add deprecation warnings for RSASHA1, RSASHA1-NSEC3SHA1 and DS digest type 1. 5aefaa4b97
RSASHA1 and RSASHA1-NSEC-SHA1 DNSKEY algorithms have been deprecated by the IETF and should no longer be used for DNSSEC. DS digest type 1 (SHA1) has also been deprecated. Validators are now expected to treat these algorithms and digest as unknown, resulting in some zones being treated as insecure when they were previously treated as secure. Warnings have been added to named and tools when these algorithms and this digest are being used for signing.
Zones signed with RSASHA1 or RSASHA1-NSEC-SHA1 should be migrated to a different DNSKEY algorithm.
Zones with DS or CDS records with digest type 1 (SHA1) should be updated to use a different digest type (e.g. SHA256) and the digest type 1 records should be removed.
Related to #5358 [GL !10738]
Bug Fixes#
Stale RRsets in a CNAME chain were not always refreshed. ed37c7825e
With serve-stale enabled, a CNAME chain that contains a stale RRset, the refresh query doesn't always properly refresh the stale RRsets. This has been fixed. [GL #5243] [GL !10767]
Add RPZ extended DNS error for zones with a CNAME override policy configured. 39ad2016c1
When the zone is configured with a CNAME override policy, or the response policy zone contains a wildcard CNAME, the extended DNS error code was not added. This has been fixed. [GL #5342] [GL !10819]
Fix a possible crash when adding a zone while recursing. 7a3ec8dd94
A query for a zone that was not yet loaded may yield an unexpected result such as a CNAME or DNAME, triggering an assertion failure. This has been fixed. [GL #5357] [GL !10718]
Fix dig issues. 8c50819aa8
When used with the +keepopen option with a TCP connection, iscman:dig could terminate unexpectedly in rare situations. Additionally, iscman:dig could hang and fail to shutdown properly when interrupted during a query. These have been fixed. [GL #5381] [GL !10727]
Log dropped or slipped responses in the query-errors category. 47470b586d
Responses which were dropped or slipped because of RRL (Response Rate Limiting) were logged in the rate-limit category instead of the query-errors category, as documented in ARM. This has been fixed. [GL #5388] [GL !10725]
Separate out adbname type flags. fc689c6525
There are three adbname flags that are used to identify different types of adbname lookups when hashing rather than using multiple hash tables. Separate these to their own structure element as these need to be able to be read without locking the adbname structure. [GL #5404] [GL !10695]
Synth-from-dnssec was not working in some scenarios. bc54f059e0
Aggressive use of DNSSEC-Validated cache with NSEC was not working in scenarios when no parent NSEC was not in cache. This has been fixed. [GL #5422] [GL !10754]
Clean enough memory when adding new ADB names/entries under memory pressure. b7e7923daa
The ADB memory cleaning is opportunistic even when we are under memory pressure (in the overmem condition). Split the opportunistic LRU cleaning and overmem cleaning and make the overmem cleaning always cleanup double of the newly allocated adbname/adbentry to ensure we never allocate more memory than the assigned limit. [GL !10707]
Prevent spurious validation failures. 3b98c7cc9d
Under rare circumstances, validation could fail if multiple clients simultaneously iterated the same set of signatures.
References #3014 [GL !10815]
Rename variable called 'free' to prevent the clash with free() 7f25d92c5d
[GL !10757]
|
| 1.1.1.2 |
| 19-Feb-2021 |
christos | branches: 1.1.1.2.6; --- 9.16.12 released ---
5578. [protocol] Make "check-names" accept A records below "_spf", "_spf_rate", and "_spf_verify" labels in order to cater for the "exists" SPF mechanism specified in RFC 7208 section 5.7 and appendix D.1. [GL #2377]
5577. [bug] Fix the "three is a crowd" key rollover bug in KASP by correctly implementing Equation (2) of the "Flexible and Robust Key Rollover" paper. [GL #2375]
5575. [bug] When migrating to KASP, BIND 9 considered keys with the "Inactive" and/or "Delete" timing metadata to be possible active keys. This has been fixed. [GL #2406]
5572. [bug] Address potential double free in generatexml(). [GL #2420]
5571. [bug] named failed to start when its configuration included a zone with a non-builtin "allow-update" ACL attached. [GL #2413]
5570. [bug] Improve performance of the DNSSEC verification code by reducing the number of repeated calls to dns_dnssec_keyfromrdata(). [GL #2073]
5569. [bug] Emit useful error message when "rndc retransfer" is applied to a zone of inappropriate type. [GL #2342]
5568. [bug] Fixed a crash in "dnssec-keyfromlabel" when using ECDSA keys. [GL #2178]
5567. [bug] Dig now reports unknown dash options while pre-parsing the options. This prevents "-multi" instead of "+multi" from reporting memory usage before ending option parsing with "Invalid option: -lti". [GL #2403]
5566. [func] Add "stale-answer-client-timeout" option, which is the amount of time a recursive resolver waits before attempting to answer the query using stale data from cache. [GL #2247]
5565. [func] The SONAMEs for BIND 9 libraries now include the current BIND 9 version number, in an effort to tightly couple internal libraries with a specific release. [GL #2387]
5562. [security] Fix off-by-one bug in ISC SPNEGO implementation. (CVE-2020-8625) [GL #2354]
5561. [bug] KASP incorrectly set signature validity to the value of the DNSKEY signature validity. This is now fixed. [GL #2383]
5560. [func] The default value of "max-stale-ttl" has been changed from 12 hours to 1 day and the default value of "stale-answer-ttl" has been changed from 1 second to 30 seconds, following RFC 8767 recommendations. [GL #2248]
5456. [func] Added "primaries" as a synonym for "masters" in named.conf, and "primary-only" as a synonym for "master-only" in the parameters to "notify", to bring terminology up-to-date with RFC 8499. [GL #1948]
5362. [func] Limit the size of IXFR responses so that AXFR will be used instead if it would be smaller. This is controlled by the "max-ixfr-ratio" option, which is a percentage representing the ratio of IXFR size to the size of the entire zone. This value cannot exceed 100%, which is the default. [GL #1515]
--- 9.16.11 released ---
5559. [bug] The --with-maxminddb=PATH form of the build-time option enabling support for libmaxminddb was not working correctly. This has been fixed. [GL #2366]
5557. [bug] Prevent RBTDB instances from being destroyed by multiple threads at the same time. [GL #2317]
5556. [bug] Further tweak newline printing in dnssec-signzone and dnssec-verify. [GL #2359]
5555. [bug] server->reload_status was not properly initialized. [GL #2361]
5554. [bug] dnssec-signzone and dnssec-verify were missing newlines between log messages. [GL #2359]
5553. [bug] When reconfiguring named, removing "auto-dnssec" did not turn off DNSSEC maintenance. [GL #2341]
5552. [func] When switching to "dnssec-policy none;", named now permits a safe transition to insecure mode and publishes the CDS and CDNSKEY DELETE records, as described in RFC 8078. [GL #1750]
5551. [bug] named no longer attempts to assign threads to CPUs outside the CPU affinity set. Thanks to Ole Bjørn Hessen. [GL #2245]
5550. [func] dnssec-signzone and named now log a warning when falling back to the "increment" SOA serial method. [GL #2058]
5545. [func] OS support for load-balanced sockets is no longer required to receive incoming queries in multiple netmgr threads. [GL #2137]
5543. [bug] Fix UDP performance issues caused by making netmgr callbacks asynchronous-only. [GL #2320]
5542. [bug] Refactor netmgr. [GL #1920] [GL #2034] [GL #2061] [GL #2194] [GL #2221] [GL #2266] [GL #2283] [GL #2318] [GL #2321]
--- 9.16.10 released ---
5544. [func] Restore the default value of "nocookie-udp-size" to 4096 bytes. [GL #2250]
5541. [func] Adjust the "max-recursion-queries" default from 75 to 100. [GL #2305]
5540. [port] Fix building with native PKCS#11 support for AEP Keyper. [GL #2315]
5539. [bug] Tighten handling of missing DNS COOKIE responses over UDP by falling back to TCP. [GL #2275]
5538. [func] Add NSEC3 support to KASP. A new option for "dnssec-policy", "nsec3param", can be used to set the desired NSEC3 parameters. NSEC3 salt collisions are automatically prevented during resalting. Salt generation is now logged with zone context. [GL #1620]
5534. [bug] The CNAME synthesized from a DNAME was incorrectly followed when the QTYPE was CNAME or ANY. [GL #2280]
--- 9.16.9 released ---
5533. [func] Add the "stale-refresh-time" option, a time window that starts after a failed lookup, during which a stale RRset is served directly from cache before a new attempt to refresh it is made. [GL #2066]
5530. [bug] dnstap did not capture responses to forwarded UPDATE requests. [GL #2252]
5527. [bug] A NULL pointer dereference occurred when creating an NTA recheck query failed. [GL #2244]
5525. [bug] Change 5503 inadvertently broke cross-compilation by replacing a call to AC_LINK_IFELSE() with a call to AC_RUN_IFELSE() in configure.ac. This has been fixed, making cross-compilation possible again. [GL #2237]
5523. [bug] The initial lookup in a zone transitioning to/from a signed state could fail if the DNSKEY RRset was not found. [GL #2236]
5522. [bug] Fixed a race/NULL dereference in TCPDNS send. [GL #2227]
5520. [bug] Fixed a number of shutdown races, reference counting errors, and spurious log messages that could occur in the network manager. [GL #2221]
5518. [bug] Stub zones now work correctly with primary servers using "minimal-responses yes". [GL #1736]
5517. [bug] Do not treat UV_EOF as a TCP4RecvErr or a TCP6RecvErr. [GL #2208]
--- 9.16.8 released ---
5516. [func] The default EDNS buffer size has been changed from 4096 to 1232 bytes. [GL #2183]
5515. [func] Add 'rndc dnssec -rollover' command to trigger a manual rollover for a specific key. [GL #1749]
5514. [bug] Fix KASP expected key size for Ed25519 and Ed448. [GL #2171]
5513. [doc] The ARM section describing the "rrset-order" statement was rewritten to make it unambiguous and up-to-date with the source code. [GL #2139]
5512. [bug] "rrset-order" rules using "order none" were causing named to crash despite named-checkconf treating them as valid. [GL #2139]
5511. [bug] 'dig -u +yaml' failed to display timestamps to the microsecond. [GL #2190]
5510. [bug] Implement the attach/detach semantics for dns_message_t to fix a data race in accessing an already-destroyed fctx->rmessage. [GL #2124]
5509. [bug] filter-aaaa: named crashed upon shutdown if it was in the process of recursing for A RRsets. [GL #1040]
5508. [func] Added new parameter "-expired" for "rndc dumpdb" that also prints expired RRsets (awaiting cleanup) to the dump file. [GL #1870]
5507. [bug] Named could compute incorrect SIG(0) responses. [GL #2109]
5506. [bug] Properly handle failed sysconf() calls, so we don't report invalid memory size. [GL #2166]
5505. [bug] Updating contents of a mixed-case RPZ could cause some rules to be ignored. [GL #2169]
5503. [bug] Cleaned up reference counting of network manager handles, now using isc_nmhandle_attach() and _detach() instead of _ref() and _unref(). [GL #2122]
--- 9.16.7 released ---
5501. [func] Log CDS/CDNSKEY publication. [GL #1748]
5500. [bug] Fix (non-)publication of CDS and CDNSKEY records. [GL #2103]
5499. [func] Add '-P ds' and '-D ds' arguments to dnssec-settime. [GL #1748]
5497. [bug] 'dig +bufsize=0' failed to disable EDNS. [GL #2054]
5496. [bug] Address a TSAN report by ensuring each rate limiter object holds a reference to its task. [GL #2081]
5495. [bug] With query minimization enabled, named failed to resolve ip6.arpa. names that had extra labels to the left of the IPv6 part. [GL #1847]
5494. [bug] Silence the EPROTO syslog message on older systems. [GL #1928]
5493. [bug] Fix off-by-one error when calculating new hash table size. [GL #2104]
5492. [bug] Tighten LOC parsing to reject a period (".") and/or "m" as a value. Fix handling of negative altitudes which are not whole meters. [GL #2074]
5491. [bug] rbtversion->glue_table_size could be read without the appropriate lock being held. [GL #2080]
5489. [bug] Named erroneously accepted certain invalid resource records that were incorrectly processed after subsequently being written to disk and loaded back, as the wire format differed. Such records include: CERT, IPSECKEY, NSEC3, NSEC3PARAM, NXT, SIG, TLSA, WKS, and X25. [GL !3953]
5488. [bug] NTA code needed to have a weak reference on its associated view to prevent the latter from being deleted while NTA tests were being performed. [GL #2067]
5486. [func] Add 'rndc dnssec -checkds' command, which signals to named that the DS record for a given zone or key has been updated in the parent zone. [GL #1613]
--- 9.16.6 released ---
5484. [func] Expire zero TTL records quickly rather than using them for stale answers. [GL #1829]
5483. [func] A new configuration option "stale-cache-enable" has been introduced to enable or disable keeping stale answers in cache. [GL #1712]
5482. [bug] If the Duplicate Address Detection (DAD) mechanism had not yet finished after adding a new IPv6 address to the system, BIND 9 would fail to bind to IPv6 addresses in a tentative state. [GL #2038]
5481. [security] "update-policy" rules of type "subdomain" were incorrectly treated as "zonesub" rules, which allowed keys used in "subdomain" rules to update names outside of the specified subdomains. The problem was fixed by making sure "subdomain" rules are again processed as described in the ARM. (CVE-2020-8624) [GL #2055]
5480. [security] When BIND 9 was compiled with native PKCS#11 support, it was possible to trigger an assertion failure in code determining the number of bits in the PKCS#11 RSA public key with a specially crafted packet. (CVE-2020-8623) [GL #2037]
5479. [security] named could crash in certain query resolution scenarios where QNAME minimization and forwarding were both enabled. (CVE-2020-8621) [GL #1997]
5478. [security] It was possible to trigger an assertion failure by sending a specially crafted large TCP DNS message. (CVE-2020-8620) [GL #1996]
5477. [bug] The idle timeout for connected TCP sockets, which was previously set to a high fixed value, is now derived from the client query processing timeout configured for a resolver. [GL #2024]
5476. [security] It was possible to trigger an assertion failure when verifying the response to a TSIG-signed request. (CVE-2020-8622) [GL #2028]
5475. [bug] Wildcard RPZ passthru rules could incorrectly be overridden by other rules that were loaded from RPZ zones which appeared later in the "response-policy" statement. This has been fixed. [GL #1619]
5474. [bug] dns_rdata_hip_next() failed to return ISC_R_NOMORE when it should have. [GL !3880]
5473. [func] The RBT hash table implementation has been changed to use a faster hash function (HalfSipHash2-4) and Fibonacci hashing for better distribution. Setting "max-cache-size" now preallocates a fixed-size hash table so that rehashing does not cause resolution brownouts while the hash table is grown. [GL #1775]
5471. [bug] The introduction of KASP support inadvertently caused the second field of "sig-validity-interval" to always be calculated in hours, even in cases when it should have been calculated in days. This has been fixed. (Thanks to Tony Finch.) [GL !3735]
5469. [port] On illumos, a constant called SEC is already defined in <sys/time.h>, which conflicts with an identically named constant in libbind9. This conflict has been resolved. [GL #1993]
5468. [bug] Addressed potential double unlock in process_fd(). [GL #2005]
5466. [bug] Addressed an error in recursive clients stats reporting. [GL #1719]
5465. [func] Added fallback to built-in trust-anchors, managed-keys, or trusted-keys if the bindkeys-file (bind.keys) cannot be parsed. [GL #1235]
5464. [bug] Requesting more than 128 files to be saved when rolling dnstap log files caused a buffer overflow. This has been fixed. [GL #1989]
5462. [bug] Move LMDB locking from LMDB itself to named. [GL #1976]
5461. [bug] The STALE rdataset header attribute was updated while the write lock was not being held, leading to incorrect statistics. The header attributes are now converted to use atomic operations. [GL #1475]
|