Lucene search
K

Linux Distros Unpatched Vulnerability : CVE-2026-45866

🗓️ 27 May 2026 00:00:00Reported by TenableType 
nessus
 nessus
🔗 www.tenable.com👁 4 Views

CVE-2026-45866 causes use-after-free in caif serial; fix defers tty release after netdev unregister.

Related
Refs
Code
ReporterTitlePublishedViews
Family
CNNVD
Linux kernel 安全漏洞
27 May 202600:00
cnnvd
CVE
CVE-2026-45866
27 May 202612:15
cve
Cvelist
CVE-2026-45866 serial: caif: fix use-after-free in caif_serial ldisc_close()
27 May 202612:15
cvelist
Debian
[SECURITY] [DLA 4606-1] linux security update
29 May 202616:36
debian
Debian CVE
CVE-2026-45866
27 May 202612:15
debiancve
Tenable Nessus
Debian dla-4606 : ata-modules-5.10.0-43-armmp-di - security update
3 Jun 202600:00
nessus
EUVD
EUVD-2026-32332
27 May 202615:33
euvd
NVD
CVE-2026-45866
27 May 202614:16
nvd
OSV
BELL-CVE-2026-45866
29 May 202606:10
osv
OSV
DEBIAN-CVE-2026-45866
27 May 202614:16
osv
Rows per page
#%NASL_MIN_LEVEL 80900
##
# (C) Tenable, Inc.
##

include('compat.inc');

if (description)
{
  script_id(317273);
  script_version("1.1");
  script_set_attribute(attribute:"plugin_modification_date", value:"2026/05/27");

  script_cve_id("CVE-2026-45866");

  script_name(english:"Linux Distros Unpatched Vulnerability : CVE-2026-45866");

  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.

  - serial: caif: fix use-after-free in caif_serial ldisc_close() There is a use-after-free bug in caif_serial
    where handle_tx() may access ser->tty after the tty has been freed. The race condition occurs between
    ldisc_close() and packet transmission: CPU 0 (close) CPU 1 (xmit) ------------- ------------ ldisc_close()
    tty_kref_put(ser->tty) [tty may be freed here] <-- race window --> caif_xmit() handle_tx() tty = ser->tty
    // dangling ptr tty->ops->write() // UAF! schedule_work() ser_release() unregister_netdevice() The root
    cause is that tty_kref_put() is called in ldisc_close() while the network device is still active and can
    receive packets. Since ser and tty have a 1:1 binding relationship with consistent lifecycles (ser is
    allocated in ldisc_open and freed in ser_release via unregister_netdevice, and each ser binds exactly one
    tty), we can safely defer the tty reference release to ser_release() where the network device is
    unregistered. Fix this by moving tty_kref_put() from ldisc_close() to ser_release(), after
    unregister_netdevice(). This ensures the tty reference is held as long as the network device exists,
    preventing the UAF. Note: We save ser->tty before unregister_netdevice() because ser is embedded in
    netdev's private data and will be freed along with netdev (needs_free_netdev = true). How to reproduce:
    Add mdelay(500) at the beginning of ldisc_close() to widen the race window, then run the reproducer
    program [1]. Note: There is a separate deadloop issue in handle_tx() when using PORT_UNKNOWN serial ports
    (e.g., /dev/ttyS3 in QEMU without proper serial backend). This deadloop exists even without this patch,
    and is likely caused by inconsistency between uart_write_room() and uart_write() in serial core. It has
    been addressed in a separate patch [2]. KASAN report:
    ================================================================== BUG: KASAN: slab-use-after-free in
    handle_tx+0x5d1/0x620 Read of size 1 at addr ffff8881131e1490 by task caif_uaf_trigge/9929 Call Trace:
    <TASK> dump_stack_lvl+0x10e/0x1f0 print_report+0xd0/0x630 kasan_report+0xe4/0x120 handle_tx+0x5d1/0x620
    dev_hard_start_xmit+0x9d/0x6c0 __dev_queue_xmit+0x6e2/0x4410 packet_xmit+0x243/0x360
    packet_sendmsg+0x26cf/0x5500 __sys_sendto+0x4a3/0x520 __x64_sys_sendto+0xe0/0x1c0 do_syscall_64+0xc9/0xf80
    entry_SYSCALL_64_after_hwframe+0x77/0x7f RIP: 0033:0x7f615df2c0d7 Allocated by task 9930: Freed by task
    64: Last potentially related work creation: The buggy address belongs to the object at ffff8881131e1000
    which belongs to the cache kmalloc-cg-2k of size 2048 The buggy address is located 1168 bytes inside of
    freed 2048-byte region [ffff8881131e1000, ffff8881131e1800) The buggy address belongs to the physical
    page: page_owner tracks the page as allocated page last free pid 9778 tgid 9778 stack trace: Memory state
    around the buggy address: ffff8881131e1380: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
    ffff8881131e1400: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb >ffff8881131e1480: fb fb fb fb fb fb fb
    fb fb fb fb fb fb fb fb fb ^ ffff8881131e1500: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
    ffff8881131e1580: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
    ================================================================== [1]:
    https://gist.github.com/mrpre/f683f244544f7b11e7fa87df9e6c2eeb [2]: https://lore.kernel.org/linux-
    serial/[email protected]/T/#u (CVE-2026-45866)

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-45866");
  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-45866");

  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/05/27");
  script_set_attribute(attribute:"plugin_publication_date", value:"2026/05/27");

  script_set_attribute(attribute:"plugin_type", value:"local");
  script_set_attribute(attribute:"cpe", value:"cpe:/o:debian:debian_linux:11.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-11");

  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-11": {
    "package_manager": "dpkg-l",
    "constraints": [
      {
        "release": "11",
        "pkgs": [
          {"reference": "bpftool"},
          {"reference": "btrfs-modules-5.10.0-32-alpha-generic-di"},
          {"reference": "cdrom-core-modules-5.10.0-32-alpha-generic-di"},
          {"reference": "hyperv-daemons"},
          {"reference": "kernel-image-5.10.0-32-alpha-generic-di"},
          {"reference": "libcpupower-dev"},
          {"reference": "libcpupower1"},
          {"reference": "linux-bootwrapper-5.10.0"},
          {"reference": "linux-config-5.10"},
          {"reference": "linux-cpupower"},
          {"reference": "linux-doc"},
          {"reference": "linux-doc-5.10"},
          {"reference": "linux-headers-5.10.0"},
          {"reference": "linux-kbuild-5.10"},
          {"reference": "linux-libc-dev"},
          {"reference": "linux-perf"},
          {"reference": "linux-perf-5.10"},
          {"reference": "linux-source"},
          {"reference": "linux-source-5.10"},
          {"reference": "linux-support-5.10.0"},
          {"reference": "loop-modules-5.10.0-32-alpha-generic-di"},
          {"reference": "nic-modules-5.10.0-32-alpha-generic-di"},
          {"reference": "nic-shared-modules-5.10.0-32-alpha-generic-di"},
          {"reference": "nic-wireless-modules-5.10.0-32-alpha-generic-di"},
          {"reference": "pata-modules-5.10.0-32-alpha-generic-di"},
          {"reference": "ppp-modules-5.10.0-32-alpha-generic-di"},
          {"reference": "scsi-core-modules-5.10.0-32-alpha-generic-di"},
          {"reference": "scsi-modules-5.10.0-32-alpha-generic-di"},
          {"reference": "scsi-nic-modules-5.10.0-32-alpha-generic-di"},
          {"reference": "serial-modules-5.10.0-32-alpha-generic-di"},
          {"reference": "usb-serial-modules-5.10.0-32-alpha-generic-di"},
          {"reference": "usbip"}
        ]
      }
    ]
  }
};

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 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 May 2026 00:00Current
5.7Medium risk
Vulners AI Score5.7
EPSS0.00032
4