CVE-2026-79981
MEDIUMDescription
The DNS stub resolver in subsys/net/lib/dns/resolve.c binds one UDP socket per configured server when the resolver context is initialised (dns_resolve_init_locked() -> register_dispatcher() -> dns_dispatcher_register()), with the local port left at 0 so the stack picks an ephemeral port exactly once. dns_write() then sends every subsequent query from that same socket without re-binding, so the source port is constant for the lifetime of the resolver context while only the 16-bit transaction identifier (ctx->queries[i].id, drawn with sys_rand16_get()) varies per query. RFC 5452 section 9.2 requires both to vary; with a fixed port, an off-path attacker has to guess only the identifier. The stable port is cheap to learn. Any single observed query reveals it permanently, and it can also be found by probing the ephemeral UDP range: subsys/net/ip/connection.c answers unmatched unicast UDP with an ICMP port-unreachable, so the resolver's socket is the one port in that range that stays silent. Acceptance of a reply is decided solely by get_slot_by_id() matching the transaction identifier and a CRC-16 of the queried name — the reply's source address is never checked (dispatcher_cb() does ARG_UNUSED(addr)), so forged answers need not even be spoofed to appear to come from the configured server; they only need to reach the resolver's port. An attacker with UDP reachability to the device (same LAN, Wi-Fi or mesh segment, or a globally routable device address) can therefore flood answers for a predictable query name across the 16-bit identifier space during a query window and race the legitimate server. A win makes the application resolve an attacker-chosen address, and with CONFIG_DNS_RESOLVER_CACHE enabled the forged record is retained for its attacker-chosen TTL. The attack still requires winning that race, and applications that validate TLS certificates for the resolved endpoint are largely protected. The fix draws a fresh local port before each query to a server that has nothing outstanding: dns_randomize_source_port() unregisters the dispatcher, closes and reopens the socket, and re-registers it bound to port 0 so the system selects a new port, raising the per-query guessing space from roughly 16 to roughly 31 bits. Multicast DNS and LLMNR are excluded because their ports are protocol-fixed. The behaviour is controlled by CONFIG_DNS_RESOLVER_RANDOMIZE_SOURCE_PORT (default y).
How to fix
No published remediation has been found for this vulnerability's affected products yet.
Mitigation guidance may be in the linked vendor advisories in the References section below.
TridentStack Control tracks known vulnerabilities across your Windows, macOS, and Linux fleet and shows the fix as soon as one is published. See how it works
CVSS v3 Vector
Exploitability
Impact
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:H/A:N
Exploit Intelligence
Low risk: more likely to be exploited than 2% of all known CVEs.
References
Related Vulnerabilities
Other CWE-330 vulnerabilities, ordered by exploit likelihood. View all
| CVE | Severity | CVSS | EPSS | Exploited | Fix |
|---|---|---|---|---|---|
| CVE-2019-5420 | Critical | 9.8 | 89% | - | Fix |
| CVE-2021-34646 | Critical | 9.8 | 51% | - | - |
| CVE-2008-0087 | High | 7.5 | 32% | - | - |
| CVE-2017-6026 | Critical | 9.1 | 32% | - | - |
| CVE-2018-17888 | Critical | 9.8 | 30% | - | - |
| CVE-2020-11901 | Critical | 9.0 | 21% | - | Fix |
Common questions
How do I fix CVE-2026-79981?
No published fix for CVE-2026-79981 has been found yet. Check the linked vendor advisories for guidance as it becomes available.
Is CVE-2026-79981 being actively exploited?
Not that we know of. CVE-2026-79981 is not in the CISA Known Exploited Vulnerabilities catalog. Its EPSS score of 0.12% is the estimated probability that it will be exploited in the next 30 days. That is higher than 2% of all scored CVEs.
How severe is CVE-2026-79981?
CVE-2026-79981 has a CVSS v3 base score of 6.5, rated medium. CVSS rates the technical impact if the vulnerability is exploited, not how likely that is, so weigh it alongside the exploit-prediction score when you decide what to patch first.
Embed a live status badge for CVE-2026-79981
Markdown
[](https://tridentstack.com/cve/CVE-2026-79981)HTML
<a href="https://tridentstack.com/cve/CVE-2026-79981"><img src="https://tridentstack.com/cve/badge/CVE-2026-79981.svg" alt="CVE-2026-79981"></a>Find and fix vulnerabilities across your fleet
TridentStack Control continuously scans your Windows, macOS, and Linux fleet for known vulnerabilities, prioritizes them by severity and active exploitation, and patches them automatically.
This product uses NVD data but is not endorsed or certified by the NVD. EPSS scores courtesy of FIRST.org (https://www.first.org/epss). Source: CISA KEV Catalog. Data as of 2026-10-26.