CVE-2022-3924: named configured to answer from stale cache may terminate unexpectedly at recursive-clients soft quota
A flaw was found in Bind. When resolver receives many queries requiring recursion, there will be a corresponding increase in the number of clients waiting for recursion to complete. This may, under certain conditions, lead to an assertion failure and a denial of service.
Other sources
If the resolver receives many queries that require recursion, there will be a corresponding increase in the number of clients that are waiting for recursion to complete. If there are sufficient clients already waiting when a new client query is received so that it is necessary to SERVFAIL the longest waiting client (see BIND 9 ARM recursive-clients limit and soft quota), then it is possible for a race to occur between providing a stale answer to this older client and sending an early timeout SERVFAIL, which may cause an assertion failure.
— Red Hat
This issue can affect BIND 9 resolvers with stale-answer-enable yes; that also make use of the option stale-answer-client-timeout, configured with a value greater than zero.
If the resolver receives many queries that require recursion, there will be a corresponding increase in the number of clients that are waiting for recursion to complete. If there are sufficient clients already waiting when a new client query is received so that it is necessary to SERVFAIL the longest waiting client (see BIND 9 ARM recursive-clients limit and soft quota), then it is possible for a race to occur between providing a stale answer to this older client and sending an early timeout SERVFAIL, which may cause an assertion failure. This issue affects BIND 9 versions 9.16.12 through 9.16.36, 9.18.0 through 9.18.10, 9.19.0 through 9.19.8, and 9.16.12-S1 through 9.16.36-S1.
— MITRE
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
redhat/bind9.16to a version that resolves this vulnerability.Fixed in 32:9.16.23-0.14.el8 - Upgrade
Upgrade
redhat/bindto a version that resolves this vulnerability.Fixed in 32:9.16.23-11.el9 - Upgrade
Upgrade
redhat/bindto a version that resolves this vulnerability.Fixed in 9.16.37 - Upgrade
Upgrade
redhat/bindto a version that resolves this vulnerability.Fixed in 9.18.11 - Upgrade
Upgrade
redhat/bindto a version that resolves this vulnerability.Fixed in 9.19.9 - Upgrade
Upgrade
debian/bind9to a version that resolves this vulnerability.Fixed in 1:9.18.49-1~deb12u1Fixed in 1:9.18.49-1~deb12u3Fixed in 1:9.20.26-1~deb13u1Fixed in 1:9.20.30-1~deb13u1Fixed in 1:9.20.30-1 - Upgrade
Upgrade
alpine/bindto a version that resolves this vulnerability.Fixed in 9.16.37-r0 - Upgrade
Upgrade
alpine/bindto a version that resolves this vulnerability.Fixed in 9.18.11-r0 - Upgrade
Upgrade
debian/bind9to a version that resolves this vulnerability.Fixed in 1:9.18.11-1 - Upgrade
Upgrade
BIND 9to a version that resolves this vulnerability.Fixed in 9.16.37 - Upgrade
Upgrade
BIND 9to a version that resolves this vulnerability.Fixed in 9.18.11 - Upgrade
Upgrade
BIND 9to a version that resolves this vulnerability.Fixed in 9.19.9 - Upgrade
Upgrade
BIND 9to a version that resolves this vulnerability.Fixed in 9.16.37-S1 - Configuration
Disable stale-answer-client-timeout entirely or set its timeout value to zero; this is not recommended because the recursive-clients limit helps prevent server-resource exhaustion.
BIND 9 resolver stale-answer-client-timeout = disabled or 0 - Configuration
Set recursive-clients to a very high value to reduce the likelihood of the race scenario; the recursive-clients limit cannot be disabled.
BIND 9 resolver recursive-clients = very high value
Event History
Parent advisories
This vulnerability appears in the following advisories.
Frequently Asked Questions
What is the vulnerability ID for this flaw in Bind?
The vulnerability ID for this flaw in Bind is CVE-2022-3924.
What is the severity level of CVE-2022-3924?
CVE-2022-3924 has a severity level of 7.5 (High).
Which software is affected by CVE-2022-3924?
CVE-2022-3924 affects BIND 9 resolvers with `stale-answer-enable yes;` that also make use of the option `stale-answer-client-timeout`, configured with a value greater than zero.
How can I fix CVE-2022-3924?
To fix CVE-2022-3924, update the affected BIND software to version 9.16.37 or later.
Where can I find more information about CVE-2022-3924?
You can find more information about CVE-2022-3924 in the following references: [Bugzilla](https://bugzilla.redhat.com/show_bug.cgi/show_bug.cgi?id=2164508) and [Red Hat Advisory RHSA-2023:2261](https://access.redhat.com/errata/RHSA-2023:2261).