CVE-2026-56444 PUBLISHED

Degradation of resolution service when 'discard-timeout' and 'serve-expired-client-timeout' are combined in unusual configuration

Assigner: NLnet Labs
Reserved: 22.06.2026 Published: 22.07.2026 Updated: 22.07.2026

In NLnet Labs Unbound 1.20.0 up to and including 1.25.1, when Unbound is configured with 'serve-expired: yes' and 'serve-expired-client-timeout > discard-timeout > 0' (contrary to the suggested values), the discard-timeout branch during the serve expired logic drops an aged client reply without performing the correct accounting for the number of reply addresses for the query. Other identical branches outside of serve expired perform the correct decrement. Since the counter is never decremented in such scenario, it can reach the maximum limit and new clients for duplicate in-flight queries are silently dropped resulting in degradation of resolution service. A malicious actor can exploit the vulnerability by querying the resolver for a client-controlled slow-on-demand authoritative zone that can drive the counter past the threshold. Shipped defaults for 'serve-expired-client-timeout: 1800' and 'discard-timeout: 1900' make the branch unreachable.

Metrics

CVSS Vector: CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H
CVSS Score: 5.9

Product Status

Vendor NLnet Labs
Product Unbound
Versions Default: unaffected
  • affected from 1.20.0 to 1.25.2 (excl.)

Solutions

This issue is fixed starting with version 1.25.2

Credits

  • Qifan Zhang (Palo Alto Networks) finder
  • Xin Wang (Northwestern Polytechnical University) finder
  • Jiapeng Li (Northwestern Polytechnical University) finder
  • Jiajia Liu (Northwestern Polytechnical University) finder
  • Haruki Oyama (Waseda University) finder

References

Problem Types

  • CWE-772: Missing Release of Resource after Effective Lifetime CWE