Linux Distros Unpatched Vulnerability : CVE-2026-98811
| Reporter | Title | Published | Views | Family All 9 |
|---|---|---|---|---|
| CVE-2026-98811 | 18 Oct 202615:48 | – | cve | |
| CVE-2026-98811 net/sched: cls_api: reclaim an empty proto on the error path | 18 Oct 202615:48 | – | cvelist | |
| CVE-2026-98811 | 18 Oct 202615:48 | – | debiancve | |
| EUVD-2026-103896 | 18 Oct 202615:48 | – | euvd | |
| CVE-2026-98811 | 18 Oct 202616:17 | – | nvd | |
| AZL-109377 CVE-2026-98811 affecting package kernel 6.6.157.1-1 | 18 Oct 202616:17 | – | osv_azl | |
| DEBIAN-CVE-2026-98811 | 18 Oct 202617:47 | – | osv_debian | |
| PT-2026-117030 | 18 Oct 202600:00 | – | ptsecurity | |
| CVE-2026-98811 | 19 Oct 202600:00 | – | ubuntucve |
| Source | Link |
|---|---|
| security-tracker | www.security-tracker.debian.org/tracker/CVE-2026-98811 |
| cve | www.cve.mitre.org/cgi-bin/cvename.cgi |
#%NASL_MIN_LEVEL 80900
##
# (C) Tenable, Inc.
##
include('compat.inc');
if (description)
{
script_id(367094);
script_version("1.1");
script_set_attribute(attribute:"plugin_modification_date", value:"2026/10/18");
script_cve_id("CVE-2026-98811");
script_name(english:"Linux Distros Unpatched Vulnerability : CVE-2026-98811");
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.
- net/sched: cls_api: reclaim an empty proto on the error path Two racing tc filter add requests on the same
chain/prio of an unlocked classifier both run change() on the shared proto and both can fail: the winner's
tcf_chain_tp_delete_empty() attempt gives up because the loser's handle is still in the idr, and the
loser's error path drops only its own reference without a second reclamation attempt. The empty proto
stays linked in the chain, holding the chain reference, a block reference and the classifier module
reference until the chain or block is torn down. Reclaim the proto on the error path of any failed request
that holds a proto reference. The reclamation is emptiness-gated: tcf_chain_tp_delete_empty() unlinks the
proto only when delete_empty() admits it is empty, so a live shared proto is never unlinked. A proto the
request created is reclaimed unconditionally - it is the only owner, so marking it for deletion is safe
even without a delete_empty callback. Classifiers without one (the check marks the proto unconditionally)
are rtnl-serialized, so the raced window this guard closes cannot arise for them. This is a follow-up to
commit d4e359b3608a (net/sched: cls_api: fix teardown of an adopted proto on insert-race loss), which
stopped the loser of the insert race from unlinking the winner's live proto but left the empty-proto
residual in place. Conditions to recreate: - CONFIG_NET_CLS_FLOWER=y; veth pair - tc qdisc add dev veth0
ingress - two concurrent `tc filter add dev veth0 ingress protocol ip pref 1 flower skip_sw ... action
drop` (both fail in fl_hw_replace_filter after publishing their handle in the idr); repeat in a loop - an
empty flower tp stays linked after both requests fail; visible as a bare `filter protocol ip pref 1 flower
chain 0` header in `tc filter show` with no filter entries - CAP_NET_ADMIN (namespace-local via unshare
-Urn suffices) (CVE-2026-98811)
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-98811");
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:N/AC:L/PR:N/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-98811");
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/18");
script_set_attribute(attribute:"plugin_publication_date", value:"2026/10/18");
script_set_attribute(attribute:"plugin_type", value:"local");
script_set_attribute(attribute:"cpe", value:"cpe:/o:debian:debian_linux:12.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-12");
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-12": {
"package_manager": "dpkg-l",
"constraints": [
{
"release": "12",
"pkgs": [
{"reference": "btrfs-modules-6.1.0-50-alpha-generic-di"},
{"reference": "cdrom-core-modules-6.1.0-50-alpha-generic-di"},
{"reference": "ext4-modules-6.1.0-50-alpha-generic-di"},
{"reference": "fat-modules-6.1.0-50-alpha-generic-di"},
{"reference": "isofs-modules-6.1.0-50-alpha-generic-di"},
{"reference": "jfs-modules-6.1.0-50-alpha-generic-di"},
{"reference": "kernel-image-6.1.0-50-alpha-generic-di"},
{"reference": "linux-doc"},
{"reference": "linux-doc-6.1"},
{"reference": "linux-headers-6.1.0"},
{"reference": "linux-source"},
{"reference": "linux-source-6.1"},
{"reference": "linux-support-6.1.0"},
{"reference": "loop-modules-6.1.0-50-alpha-generic-di"},
{"reference": "nic-modules-6.1.0-50-alpha-generic-di"},
{"reference": "nic-shared-modules-6.1.0-50-alpha-generic-di"},
{"reference": "nic-wireless-modules-6.1.0-50-alpha-generic-di"},
{"reference": "pata-modules-6.1.0-50-alpha-generic-di"},
{"reference": "ppp-modules-6.1.0-50-alpha-generic-di"},
{"reference": "scsi-core-modules-6.1.0-50-alpha-generic-di"},
{"reference": "scsi-modules-6.1.0-50-alpha-generic-di"},
{"reference": "scsi-nic-modules-6.1.0-50-alpha-generic-di"},
{"reference": "serial-modules-6.1.0-50-alpha-generic-di"},
{"reference": "usb-serial-modules-6.1.0-50-alpha-generic-di"},
{"reference": "xfs-modules-6.1.0-50-alpha-generic-di"}
]
}
]
}
};
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
18 Oct 2026 00:00Current
5.7Medium risk
Vulners AI Score5.7
EPSS0.00168