Linux Distros Unpatched Vulnerability : CVE-2026-90001
| Reporter | Title | Published | Views | Family All 9 |
|---|---|---|---|---|
| CVE-2026-90001 | 16 Sep 202610:33 | – | cve | |
| CVE-2026-90001 HID: bpf: serialize device reference release in struct_ops destroy path | 16 Sep 202610:33 | – | cvelist | |
| CVE-2026-90001 | 16 Sep 202610:33 | – | debiancve | |
| EUVD-2026-80609 | 16 Sep 202610:33 | – | euvd | |
| CVE-2026-90001 | 16 Sep 202611:17 | – | nvd | |
| BELL-CVE-2026-90001 | 18 Sep 202606:05 | – | osv | |
| DEBIAN-CVE-2026-90001 | 16 Sep 202611:17 | – | osv | |
| UBUNTU-CVE-2026-90001 | 17 Sep 202600:00 | – | osv | |
| CVE-2026-90001 | 17 Sep 202600:00 | – | ubuntucve |
| Source | Link |
|---|---|
| security-tracker | www.security-tracker.debian.org/tracker/CVE-2026-90001 |
| cve | www.cve.mitre.org/cgi-bin/cvename.cgi |
#%NASL_MIN_LEVEL 80900
##
# (C) Tenable, Inc.
##
include('compat.inc');
if (description)
{
script_id(346592);
script_version("1.1");
script_set_attribute(attribute:"plugin_modification_date", value:"2026/09/16");
script_cve_id("CVE-2026-90001");
script_name(english:"Linux Distros Unpatched Vulnerability : CVE-2026-90001");
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.
- HID: bpf: serialize device reference release in struct_ops destroy path __hid_bpf_ops_destroy_device() and
hid_bpf_unreg() can race on the same registration reference, double-putting struct hid_device and freeing
it while hid_destroy_device() still uses it. Serialize the remove/NULL decision under
hdev->bpf.prog_list_lock so exactly one path releases each registration reference: unreg re-checks
ops->hdev under the lock and returns without putting when the destroy path already cleared it; all
put_device() calls happen after the lock is dropped, which is safe because a concurrent unreg then
observes ops->hdev == NULL under the lock. Background: each successful attach (hid_bpf_ops_reg) acquires
one device reference (hid_get_device()). Two paths can release it: - device destruction:
hid_destroy_device() -> hid_bpf_destroy_device() -> __hid_bpf_ops_destroy_device(), which walks
hdev->bpf.prog_list under rcu_read_lock() and drops one reference per attached program; - BPF link
release: bpf map delete (no BPF_F_LINK) synchronously calls st_ops->unreg() -> hid_bpf_unreg(), which
drops the reference for its own registration. The coordination handshake (e->hdev = NULL on the destroy
side vs if (!hdev) return on the unreg side) is a TOCTOU check: the two paths run under different lock
domains (rcu_read_lock vs prog_list_lock), so a concurrent unreg can read ops->hdev as non-NULL, block on
prog_list_lock, and then proceed while the destroy traversal executes - both paths then drop the same
reference. The refcount reaches zero legitimately (each decrement is individually valid), so no refcount_t
saturation fires: the device is simply freed while the transport is still inside hid_destroy_device(), and
subsequent teardown touches freed memory. The fix serializes the remove/NULL decision under prog_list_lock
on both sides and moves the destroy-side puts outside the lock. With the lock held, plain reads/writes of
ops->hdev are sufficient; no READ_ONCE/WRITE_ONCE are added, keeping the patch minimal. Unlocked-read
safety: the unlocked read of ops->hdev at the top of hid_bpf_unreg() cannot touch a freed device, because
the unreg path itself still holds this registration's reference (released only by its own hid_put_device()
after the lock is dropped), and a destroy traversal that already cleared ops->hdev makes the lock-internal
re-check return early without any put. At most one of the two paths releases each registration reference.
(CVE-2026-90001)
Note that Nessus relies on the presence of the package as reported by the vendor.");
script_set_attribute(attribute:"see_also", value:"https://security-tracker.debian.org/tracker/CVE-2026-90001");
script_set_attribute(attribute:"solution", value:
"There is no known solution at this time.");
script_set_attribute(attribute:"agent", value:"unix");
script_set_cvss_base_vector("CVSS2#AV:N/AC:L/Au:N/C:P/I:P/A:P");
script_set_cvss_temporal_vector("CVSS2#E:U/RL:U/RC:C");
script_set_cvss3_base_vector("CVSS:3.0/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H");
script_set_cvss3_temporal_vector("CVSS:3.0/E:U/RL:U/RC:C");
script_set_attribute(attribute:"cvss_score_source", value:"CVE-2026-90001");
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/09/16");
script_set_attribute(attribute:"plugin_publication_date", value:"2026/09/16");
script_set_attribute(attribute:"plugin_type", value:"local");
script_set_attribute(attribute:"cpe", value:"cpe:/o:debian:debian_linux:13.0");
script_set_attribute(attribute:"cpe", value:"cpe:/o:debian:debian_linux:14.0");
script_set_attribute(attribute:"cpe", value:"p-cpe:/a:debian:debian_linux:linux");
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/Debian Linux-13", "Host/OS/Debian Linux-14");
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 = {
"Debian Linux-14": {
"package_manager": "dpkg-l",
"constraints": [
{
"release": "14",
"pkgs": [
{"reference": "bpftool"},
{"reference": "hyperv-daemons"},
{"reference": "intel-sdsi"},
{"reference": "libcpupower-dev"},
{"reference": "libcpupower1"},
{"reference": "linux-base-7.1.13+deb14-alpha-generic"},
{"reference": "linux-base-7.1.13+deb14-alpha-smp"},
{"reference": "linux-base-7.1.13+deb14-amd64"},
{"reference": "linux-base-7.1.13+deb14-arm64"},
{"reference": "linux-base-7.1.13+deb14-arm64-16k"},
{"reference": "linux-base-7.1.13+deb14-armmp"},
{"reference": "linux-base-7.1.13+deb14-armmp-lpae"},
{"reference": "linux-base-7.1.13+deb14-cloud-amd64"},
{"reference": "linux-base-7.1.13+deb14-cloud-arm64"},
{"reference": "linux-base-7.1.13+deb14-loong64"},
{"reference": "linux-base-7.1.13+deb14-m68k"},
{"reference": "linux-base-7.1.13+deb14-parisc"},
{"reference": "linux-base-7.1.13+deb14-parisc64"},
{"reference": "linux-base-7.1.13+deb14-powerpc"},
{"reference": "linux-base-7.1.13+deb14-powerpc-smp"},
{"reference": "linux-base-7.1.13+deb14-powerpc64"},
{"reference": "linux-base-7.1.13+deb14-powerpc64-64k"},
{"reference": "linux-base-7.1.13+deb14-powerpc64le"},
{"reference": "linux-base-7.1.13+deb14-powerpc64le-64k"},
{"reference": "linux-base-7.1.13+deb14-riscv64"},
{"reference": "linux-base-7.1.13+deb14-rt-amd64"},
{"reference": "linux-base-7.1.13+deb14-rt-arm64"},
{"reference": "linux-base-7.1.13+deb14-s390x"},
{"reference": "linux-base-7.1.13+deb14-sh7751r"},
{"reference": "linux-base-7.1.13+deb14-sparc64"},
{"reference": "linux-base-7.1.13+deb14-sparc64-smp"}
]
}
]
},
"Debian Linux-13": {
"package_manager": "dpkg-l",
"constraints": [
{
"release": "13",
"pkgs": [
{"reference": "bpftool"},
{"reference": "hyperv-daemons"},
{"reference": "intel-sdsi"},
{"reference": "libcpupower-dev"},
{"reference": "libcpupower1"},
{"reference": "linux-bpf-dev"},
{"reference": "linux-config-6.12"},
{"reference": "linux-cpupower"},
{"reference": "linux-doc"},
{"reference": "linux-doc-6.12"},
{"reference": "linux-headers-4kc-malta"},
{"reference": "linux-headers-5kc-malta"},
{"reference": "linux-headers-6.12.107+deb13-4kc-malta"},
{"reference": "linux-headers-6.12.107+deb13-5kc-malta"},
{"reference": "linux-headers-6.12.107+deb13-alpha-generic"},
{"reference": "linux-headers-6.12.107+deb13-alpha-smp"},
{"reference": "linux-headers-6.12.107+deb13-amd64"},
{"reference": "linux-headers-6.12.107+deb13-arm64"},
{"reference": "linux-headers-6.12.107+deb13-arm64-16k"},
{"reference": "linux-headers-6.12.107+deb13-armmp"},
{"reference": "linux-headers-6.12.107+deb13-armmp-lpae"},
{"reference": "linux-headers-6.12.107+deb13-cloud-amd64"},
{"reference": "linux-headers-6.12.107+deb13-cloud-arm64"},
{"reference": "linux-headers-6.12.107+deb13-common"},
{"reference": "linux-headers-6.12.107+deb13-common-rt"},
{"reference": "linux-headers-6.12.107+deb13-loong64"},
{"reference": "linux-headers-6.12.107+deb13-loongson-3"},
{"reference": "linux-headers-6.12.107+deb13-m68k"},
{"reference": "linux-headers-6.12.107+deb13-mips32r2eb"},
{"reference": "linux-headers-6.12.107+deb13-mips32r2el"},
{"reference": "linux-headers-6.12.107+deb13-mips64r2eb"}
]
}
]
}
};
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
16 Sep 2026 00:00Current
CVSS 3.17.8
EPSS0.00163