Every named
instance configured to run as a recursive resolver maintains a cache database holding the responses to the queries it has recently sent to authoritative servers. The size limit for that cache database can be configured using the max-cache-size
statement in the configuration file; it defaults to 90% of the total amount of memory available on the host. When the size of the cache reaches 7/8 of the configured limit, a cache-cleaning algorithm starts to remove expired and/or least-recently used RRsets from the cache, to keep memory use below the configured limit. It has been discovered that the effectiveness of the cache-cleaning algorithm used in named
can be severely diminished by querying the resolver for specific RRsets in a certain order, effectively allowing the configured max-cache-size
limit to be significantly exceeded. This issue affects BIND 9 versions 9.11.0 through 9.16.41, 9.18.0 through 9.18.15, 9.19.0 through 9.19.13, 9.11.3-S1 through 9.16.41-S1, and 9.18.11-S1 through 9.18.15-S1.
OS | Version | Architecture | Package | Version | Filename |
---|---|---|---|---|---|
Debian | 12 | all | bind9 | < 1:9.18.16-1~deb12u1 | bind9_1:9.18.16-1~deb12u1_all.deb |
Debian | 11 | all | bind9 | < 1:9.16.42-1~deb11u1 | bind9_1:9.16.42-1~deb11u1_all.deb |
Debian | 10 | all | bind9 | < 1:9.11.5.P4+dfsg-5.1+deb10u9 | bind9_1:9.11.5.P4+dfsg-5.1+deb10u9_all.deb |
Debian | 999 | all | bind9 | < 1:9.18.16-1 | bind9_1:9.18.16-1_all.deb |
Debian | 13 | all | bind9 | < 1:9.18.16-1 | bind9_1:9.18.16-1_all.deb |