Linux Distros Unpatched Vulnerability : CVE-2026-79981
| Reporter | Title | Published | Views | Family All 9 |
|---|---|---|---|---|
| CVE-2026-79981 | 23 Oct 202620:07 | – | circl | |
| CVE-2026-79981 | 23 Oct 202619:56 | – | cve | |
| CVE-2026-79981 DNS resolver reuses a single UDP source port for all queries, easing off-path answer spoofing | 23 Oct 202619:56 | – | cvelist | |
| EUVD-2026-109144 | 23 Oct 202619:56 | – | euvd | |
| CVE-2026-79981 | 23 Oct 202619:56 | – | mend | |
| CVE-2026-79981 | 23 Oct 202620:17 | – | nvd | |
| UBUNTU-CVE-2026-79981 | 26 Oct 202600:00 | – | osv_ubuntu | |
| PT-2026-122215 | 23 Oct 202600:00 | – | ptsecurity | |
| CVE-2026-79981 | 23 Oct 202620:17 | – | ubuntucve |
| Source | Link |
|---|---|
| ubuntu | www.ubuntu.com/security/CVE-2026-79981 |
| cve | www.cve.mitre.org/cgi-bin/cvename.cgi |
#%NASL_MIN_LEVEL 80900
##
# (C) Tenable, Inc.
##
include('compat.inc');
if (description)
{
script_id(372396);
script_version("1.1");
script_set_attribute(attribute:"plugin_modification_date", value:"2026/10/27");
script_cve_id("CVE-2026-79981");
script_name(english:"Linux Distros Unpatched Vulnerability : CVE-2026-79981");
script_set_attribute(attribute:"synopsis", value:
"The Linux/Unix host has one or more packages installed with a vulnerability that the vendor indicates will not be
patched.");
script_set_attribute(attribute:"description", value:
"The Linux/Unix host has one or more packages installed that are impacted by a vulnerability without a vendor supplied
patch available.
- 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). (CVE-2026-79981)
Note that Nessus relies on the presence of the package as reported by the vendor.");
script_set_attribute(attribute:"see_also", value:"https://ubuntu.com/security/CVE-2026-79981");
script_set_attribute(attribute:"solution", value:
"There is no known solution at this time.");
script_set_attribute(attribute:"agent", value:"unix");
script_set_cvss3_base_vector("CVSS:3.0/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:H/A:N");
script_set_cvss3_temporal_vector("CVSS:3.0/E:U/RL:U/RC:C");
script_set_attribute(attribute:"cvss3_score_source", value:"CVE-2026-79981");
script_set_attribute(attribute:"exploitability_ease", value:"No known exploits are available");
script_set_attribute(attribute:"exploit_available", value:"false");
script_set_attribute(attribute:"vendor_unpatched", value:"true");
script_set_attribute(attribute:"vuln_publication_date", value:"2026/10/23");
script_set_attribute(attribute:"plugin_publication_date", value:"2026/10/27");
script_set_attribute(attribute:"plugin_type", value:"local");
script_set_attribute(attribute:"cpe", value:"cpe:/o:canonical:ubuntu_linux:16.04:-:lts");
script_set_attribute(attribute:"cpe", value:"cpe:/o:canonical:ubuntu_linux:18.04:-:lts");
script_set_attribute(attribute:"cpe", value:"cpe:/o:canonical:ubuntu_linux:20.04:-:lts");
script_set_attribute(attribute:"cpe", value:"cpe:/o:canonical:ubuntu_linux:22.04:-:lts");
script_set_attribute(attribute:"cpe", value:"cpe:/o:canonical:ubuntu_linux:24.04:-:lts");
script_set_attribute(attribute:"cpe", value:"cpe:/o:canonical:ubuntu_linux:26.04:-:lts");
script_set_attribute(attribute:"cpe", value:"p-cpe:/a:canonical:ubuntu_linux:zephyr");
script_set_attribute(attribute:"generated_plugin", value:"current");
script_end_attributes();
script_category(ACT_GATHER_INFO);
script_family(english:"Misc.");
script_copyright(english:"This script is Copyright (C) 2026 and is owned by Tenable, Inc. or an Affiliate thereof.");
script_dependencies("ssh_get_info2.nasl", "set_linux_os_id.nasl");
script_require_keys("Host/cpu", "Host/local_checks_enabled", "global_settings/vendor_unpatched", "Host/OS/identifier");
script_require_ports("Host/OS/Ubuntu Linux-16.04", "Host/OS/Ubuntu Linux-18.04", "Host/OS/Ubuntu Linux-20.04", "Host/OS/Ubuntu Linux-22.04", "Host/OS/Ubuntu Linux-24.04", "Host/OS/Ubuntu Linux-26.04");
exit(0);
}
if (!get_kb_item("global_settings/vendor_unpatched")) exit(0, "Unpatched Vulnerabilities Detection not active.");
if (!get_kb_item("Host/local_checks_enabled")) audit(AUDIT_LOCAL_CHECKS_NOT_ENABLED);
if (empty_or_null(get_one_kb_item("Host/Debian/dpkg-l"))) audit(AUDIT_PACKAGE_LIST_MISSING);
include('linux_unpatched.inc');
var distro_constraints_array = {
"Ubuntu Linux-16.04": {
"package_manager": "dpkg-l",
"constraints": [
{
"release": "16.04",
"pkgs": [
{"reference": "zephyr"}
]
}
]
},
"Ubuntu Linux-18.04": {
"package_manager": "dpkg-l",
"constraints": [
{
"release": "18.04",
"pkgs": [
{"reference": "zephyr"}
]
}
]
},
"Ubuntu Linux-20.04": {
"package_manager": "dpkg-l",
"constraints": [
{
"release": "20.04",
"pkgs": [
{"reference": "zephyr"}
]
}
]
},
"Ubuntu Linux-22.04": {
"package_manager": "dpkg-l",
"constraints": [
{
"release": "22.04",
"pkgs": [
{"reference": "zephyr"}
]
}
]
},
"Ubuntu Linux-24.04": {
"package_manager": "dpkg-l",
"constraints": [
{
"release": "24.04",
"pkgs": [
{"reference": "zephyr"}
]
}
]
},
"Ubuntu Linux-26.04": {
"package_manager": "dpkg-l",
"constraints": [
{
"release": "26.04",
"pkgs": [
{"reference": "zephyr"}
]
}
]
}
};
var distro_constraints_values = linux_unpatched::get_distro_constraints(distro_constraints_arr:distro_constraints_array);
if (empty_or_null(distro_constraints_values)) audit(AUDIT_HOST_NOT, 'affected');
var third_party_support = get_kb_item('Host/OS/extended-third-party');
if (!empty_or_null(third_party_support)) {
var third_party_vendors = distro_constraints_values['third_party'];
if (!empty_or_null(third_party_vendors)) {
var vendor;
foreach vendor (third_party_vendors) {
if (vendor == third_party_support) exit(0, 'A third party management patch is available for this vulnerability from ' + vendor + '.\n');
}
}
}
var report = linux_unpatched::check_unpatched_constraints(distro_constraints_values:distro_constraints_values);
if (!empty_or_null(report))
{
security_report_v4(
port : 0,
severity : SECURITY_WARNING,
extra : report
);
exit(0);
}
else
{
audit(AUDIT_HOST_NOT, 'affected');
}
Data
Build on a solid foundation with Vulners data
We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data
Api
Power your application with Vulners API
The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access
App
Assess and manage vulnerabilities with Vulners tools
Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation
27 Oct 2026 00:00Current
5.7Medium risk
Vulners AI Score5.7
CVSS 3.16.5
EPSS0.00124