5.9 MEDIUM
- CVSS version (CVSS): 3.1
- Attack Vector (AV): Network (N)
- Attack Complexity (AC): High (H)
- Privileges Required (PR): None (N)
- User Interaction (UI): None (N)
- Scope (S): Unchanged (U)
- Confidentiality (C): None (N)
- Integrity (I): None (N)
- Availability (A): High (H)
- Modified Attack Vector (MAV): Network (N)
- Modified Attack Complexity (MAC): High (H)
- Modified Privileges Required (MPR): None (N)
- Modified User Interaction (MUI): None (N)
- Modified Confidentiality (MC): None (N)
- Modified Scope (MS): Unchanged (U)
- Modified Integrity (MI): None (N)
- Modified Availability (MA): High (H)
by @LeSuisse Activity log
- Created suggestion
-
@LeSuisse
ignored
14 packages
- haskellPackages.unbound-generics-unify
- haskellPackages.unbound-kind-generics
- haskellPackages.unbounded-delays
- haskellPackages.unbound-generics
- python314Packages.pyunbound
- python313Packages.pyunbound
- prometheus-unbound-exporter
- lua55Packages.luaunbound
- lua53Packages.luaunbound
- lua52Packages.luaunbound
- lua51Packages.luaunbound
- luaPackages.luaunbound
- luajitPackages.luaunbound
- lua54Packages.luaunbound
- @LeSuisse ignored maintainer @Scrumplex maintainer.ignore
- @LeSuisse accepted
- @LeSuisse published on GitHub
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').
References
-
https://www.nlnetlabs.nl/downloads/unbound/CVE-2026-55990.txt vendor-advisory
Affected products
- <1.25.2
Matching in nixpkgs
pkgs.unbound
Validating, recursive, and caching DNS resolver
pkgs.unbound-full
Validating, recursive, and caching DNS resolver
Ignored packages (14)
pkgs.luaPackages.luaunbound
A binding to libunbound
pkgs.lua51Packages.luaunbound
A binding to libunbound
pkgs.lua52Packages.luaunbound
A binding to libunbound
pkgs.lua53Packages.luaunbound
A binding to libunbound
pkgs.lua54Packages.luaunbound
A binding to libunbound
pkgs.lua55Packages.luaunbound
A binding to libunbound
pkgs.luajitPackages.luaunbound
A binding to libunbound
pkgs.prometheus-unbound-exporter
Prometheus exporter for Unbound DNS resolver
pkgs.python313Packages.pyunbound
Python library for Unbound, the validating, recursive, and caching DNS resolver
pkgs.python314Packages.pyunbound
Python library for Unbound, the validating, recursive, and caching DNS resolver
pkgs.haskellPackages.unbound-generics
Support for programming with names and binders using GHC Generics
pkgs.haskellPackages.unbounded-delays
Unbounded thread delays and timeouts
pkgs.haskellPackages.unbound-kind-generics
Support for programming with names and binders using kind-generics
Package maintainers
Ignored maintainers (1)
-
@Scrumplex Sefa Eyeoglu <contact@scrumplex.net>