Off-by-one error in 'harden-below-nxdomain' logic can shadow a stub/forward zone by a legitimate parent's NXDOMAIN
In NLnet Labs Unbound 1.13.2 up to and including 1.25.1, stub or forward zones where the name is below an intermediate labed below a DNSSEC signed zone could be shadowed by the intermediate label's secure NXDOMAIN answer from the parent. This is caused by an off-by-one error in 'harden-below-nxdomain' logic; enabled by default. It effectively bypasses the configuration and the configured stub/forward zone is never contacted. 'harden-below-nxdomain' does an upward DNS cache walk together with a delegation point guard that does not allow NXDOMAIN synthesis above stub/forward zones. The guard tests the domain name but before stripping a label. This results in an iteration where the domain name equals the configured stub/forward zone apex that passes the guard, strips one more label, and probes the cache at the apex's immediate public parent. If that parent has a cached DNSSEC-secure NXDOMAIN, which it will for any private namespace nested two or more labels under a signed public name, the walk returns it and the configured stub/forward upstream is never contacted. This can only be triggered by the query for the intermediate label (between the stub/forward apex and the DNSSEC parent zone).
Problem Types
| Type | CWE ID | Description |
|---|
| CWE | CWE-193 | CWE-193: Off-by-one Error |
Type: CWE
Description: CWE-193: Off-by-one Error
Metrics
| Version | Base score | Base severity | Vector |
|---|
| 3.1 | 3.7 | LOW | CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L |
Version: 3.1
Base score: 3.7
Base severity: LOW
Vector: CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L
Timeline
| Event | Date |
|---|
| Issue reported by Qifan Zhang | 2026-05-04 00:00:00 |
| NLnet Labs shares patch | 2026-05-29 00:00:00 |
| Qifan Zhang verifies patch | 2026-05-30 00:00:00 |
| Fixes released with version 1.25.2 | 2026-07-22 00:00:00 |
Event: Issue reported by Qifan Zhang
Date: 2026-05-04 00:00:00
Event: NLnet Labs shares patch
Date: 2026-05-29 00:00:00
Event: Qifan Zhang verifies patch
Date: 2026-05-30 00:00:00
Event: Fixes released with version 1.25.2
Date: 2026-07-22 00:00:00