Packet of death for a DNSCrypt misconfigured Unbound
In NLnet Labs Unbound 1.7.0 up to and including 1.25.1, when the 'dnscrypt:' clause lists more 'dnscrypt-provider-cert:' files than there are matching 'dnscrypt-secret-key:' files, Unbound fills only the matched prefix and leaves the tail slots at the '0xdb' fill that libsodium's allocator writes into every allocation. Unbound would then iterate over the number of cert files, not the actual slots, so it walks into a slot with garbage data filled with '0xdb' bytes. Any unauthenticated client that sends one UDP datagram of ≥ 68 bytes whose first 8 bytes are '0xdb' to 'dnscrypt-port' will use that garbage entry which leads to a garbage dereference killing the server. This is a silent faulty configuration that goes unnoticed until triggered with the right client query. Unbound needs to be compiled with DNSCrypt support ('--enable-dnscrypt').
Problem Types
| Type | CWE ID | Description |
|---|
| CWE | CWE-457 | CWE-457: Use of Uninitialized Variable |
Type: CWE
Description: CWE-457: Use of Uninitialized Variable
Metrics
| Version | Base score | Base severity | Vector |
|---|
| 3.1 | 5.9 | MEDIUM | CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H |
Version: 3.1
Base score: 5.9
Base severity: MEDIUM
Vector: CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H
Timeline
| Event | Date |
|---|
| Issue reported by Qifan Zhang | 2026-05-18 00:00:00 |
| NLnet Labs shares patch | 2026-06-10 00:00:00 |
| Qifan Zhang verifies patch | 2026-06-13 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-18 00:00:00
Event: NLnet Labs shares patch
Date: 2026-06-10 00:00:00
Event: Qifan Zhang verifies patch
Date: 2026-06-13 00:00:00
Event: Fixes released with version 1.25.2
Date: 2026-07-22 00:00:00