Lucene search
+L

Linux Distros Unpatched Vulnerability : CVE-2026-74488

🗓️ 15 Aug 2026 00:00:00Reported by TenableType 
nessus
 nessus
🔗 www.tenable.com👁 2 Views

mwifiex wifi driver uses wrong skb length when parsing A-MSDU TDLS frames, causing buffer overflow.

Related
Refs
Code
ReporterTitlePublishedViews
Family
attackerkb
ATTACKERKB
CVE-2026-74488
15 Aug 202612:27
attackerkb
cve
CVE
CVE-2026-74488
15 Aug 202612:27
cve
cvelist
Cvelist
CVE-2026-74488 wifi: mwifiex: use the subframe length when parsing A-MSDU TDLS frames
15 Aug 202612:27
cvelist
debiancve
Debian CVE
CVE-2026-74488
15 Aug 202612:27
debiancve
euvd
EUVD
EUVD-2026-59681
15 Aug 202612:27
euvd
nvd
NVD
CVE-2026-74488
15 Aug 202613:17
nvd
osv
OSV
DEBIAN-CVE-2026-74488
15 Aug 202613:17
osv
ptsecurity
Positive Technologies
PT-2026-72940
15 Aug 202600:00
ptsecurity
susecve
SUSE CVE
SUSE CVE-2026-74488
15 Aug 202623:51
susecve
#%NASL_MIN_LEVEL 80900
##
# (C) Tenable, Inc.
##

include('compat.inc');

if (description)
{
  script_id(335877);
  script_version("1.1");
  script_set_attribute(attribute:"plugin_modification_date", value:"2026/08/15");

  script_cve_id("CVE-2026-74488");

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

  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.

  - wifi: mwifiex: use the subframe length when parsing A-MSDU TDLS frames mwifiex_11n_dispatch_amsdu_pkt()
    splits an A-MSDU with ieee80211_amsdu_to_8023s() and walks the resulting subframes. For each subframe it
    passes the subframe data pointer to mwifiex_process_tdls_action_frame(), but pairs it with skb->len, the
    length of the A-MSDU parent, instead of rx_skb->len: rx_skb = __skb_dequeue(&list); rx_hdr = (struct
    rx_packet_hdr *)rx_skb->data; if (ISSUPP_TDLS_ENABLED(priv->adapter->fw_cap_info) &&
    ntohs(rx_hdr->eth803_hdr.h_proto) == ETH_P_TDLS) { mwifiex_process_tdls_action_frame(priv, (u8 *)rx_hdr,
    skb->len); } The parent is not a valid description of that buffer, and may not be valid memory at all.
    ieee80211_amsdu_to_8023s() ends with if (!reuse_skb) dev_kfree_skb(skb); and it only sets reuse_skb when
    the parent is linear, is not a head_frag, and is being consumed as the *last* subframe. So when the parent
    does not qualify for reuse it has already been freed, and the read of skb->len is a use-after-free. When
    it is reused, skb->len is the length of the last subframe, applied to every earlier subframe, which over-
    states the buffer whenever an earlier subframe is shorter. The callee cannot absorb a wrong length,
    because it derives its own ceiling from the value it is given. Each frame type computes ies_len = len -
    sizeof(struct ethhdr) - TDLS_*_FIX_LEN; and the element walk is then bounded entirely against that
    ceiling, for (end = pos + ies_len; pos + 1 < end; pos += 2 + pos[1]) { u8 ie_len = pos[1]; if (pos + 2 +
    ie_len > end) break; so a too-large len moves end past the end of the subframe and the walk reads and
    copies beyond it. The A-MSDU layout is chosen by the sender, which makes the difference between the last
    subframe and a shorter earlier one remotely selectable. Reaching this requires TDLS support in firmware
    and the TDLS ethertype on the subframe. The other caller, mwifiex_process_rx_packet(), is correct: it
    passes a pointer and a length that describe the same region of the RX buffer. Pass rx_skb->len, the length
    of the subframe actually being parsed. (CVE-2026-74488)

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

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

  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:"cpe:/o:debian:debian_linux:12.0");
  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-11", "Host/OS/Debian Linux-12", "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-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"}
        ]
      }
    ]
  },
  "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"}
        ]
      }
    ]
  },
  "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.7+deb14-alpha-generic"},
          {"reference": "linux-base-7.1.7+deb14-alpha-smp"},
          {"reference": "linux-base-7.1.7+deb14-amd64"},
          {"reference": "linux-base-7.1.7+deb14-arm64"},
          {"reference": "linux-base-7.1.7+deb14-arm64-16k"},
          {"reference": "linux-base-7.1.7+deb14-armmp"},
          {"reference": "linux-base-7.1.7+deb14-armmp-lpae"},
          {"reference": "linux-base-7.1.7+deb14-cloud-amd64"},
          {"reference": "linux-base-7.1.7+deb14-cloud-arm64"},
          {"reference": "linux-base-7.1.7+deb14-loong64"},
          {"reference": "linux-base-7.1.7+deb14-m68k"},
          {"reference": "linux-base-7.1.7+deb14-parisc"},
          {"reference": "linux-base-7.1.7+deb14-parisc64"},
          {"reference": "linux-base-7.1.7+deb14-powerpc"},
          {"reference": "linux-base-7.1.7+deb14-powerpc-smp"},
          {"reference": "linux-base-7.1.7+deb14-powerpc64"},
          {"reference": "linux-base-7.1.7+deb14-powerpc64-64k"},
          {"reference": "linux-base-7.1.7+deb14-powerpc64le"},
          {"reference": "linux-base-7.1.7+deb14-powerpc64le-64k"},
          {"reference": "linux-base-7.1.7+deb14-riscv64"},
          {"reference": "linux-base-7.1.7+deb14-rt-amd64"},
          {"reference": "linux-base-7.1.7+deb14-rt-arm64"},
          {"reference": "linux-base-7.1.7+deb14-s390x"},
          {"reference": "linux-base-7.1.7+deb14-sh7751r"},
          {"reference": "linux-base-7.1.7+deb14-sparc64"},
          {"reference": "linux-base-7.1.7+deb14-sparc64-smp"},
          {"reference": "linux-base-7.1.7+deb14-test"}
        ]
      }
    ]
  },
  "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.94+deb13-4kc-malta"},
          {"reference": "linux-headers-6.12.94+deb13-5kc-malta"},
          {"reference": "linux-headers-6.12.94+deb13-alpha-generic"},
          {"reference": "linux-headers-6.12.94+deb13-alpha-smp"},
          {"reference": "linux-headers-6.12.94+deb13-amd64"},
          {"reference": "linux-headers-6.12.94+deb13-arm64"},
          {"reference": "linux-headers-6.12.94+deb13-arm64-16k"},
          {"reference": "linux-headers-6.12.94+deb13-armmp"},
          {"reference": "linux-headers-6.12.94+deb13-armmp-lpae"},
          {"reference": "linux-headers-6.12.94+deb13-cloud-amd64"},
          {"reference": "linux-headers-6.12.94+deb13-cloud-arm64"},
          {"reference": "linux-headers-6.12.94+deb13-common"},
          {"reference": "linux-headers-6.12.94+deb13-common-rt"},
          {"reference": "linux-headers-6.12.94+deb13-loong64"},
          {"reference": "linux-headers-6.12.94+deb13-loongson-3"},
          {"reference": "linux-headers-6.12.94+deb13-m68k"},
          {"reference": "linux-headers-6.12.94+deb13-mips32r2eb"},
          {"reference": "linux-headers-6.12.94+deb13-mips32r2el"},
          {"reference": "linux-headers-6.12.94+deb13-mips64r2eb"},
          {"reference": "linux-headers-6.12.94+deb13-mips64r2el"}
        ]
      }
    ]
  }
};

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

15 Aug 2026 00:00Current
5.4Medium risk
Vulners AI Score5.4
2