Lucene search
+L

Linux Distros Unpatched Vulnerability : CVE-2026-74387

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

ALSA midi seq event_process_midi() use-after-free and NULL-deref in Linux distros with no vendor patch available.

Related
Refs
Code
ReporterTitlePublishedViews
Family
attackerkb
ATTACKERKB
CVE-2026-74387
15 Aug 202605:59
attackerkb
cve
CVE
CVE-2026-74387
15 Aug 202605:59
cve
cvelist
Cvelist
CVE-2026-74387 ALSA: seq: midi: Serialize output teardown with event_input
15 Aug 202605:59
cvelist
debiancve
Debian CVE
CVE-2026-74387
15 Aug 202605:59
debiancve
euvd
EUVD
EUVD-2026-59534
15 Aug 202605:59
euvd
nvd
NVD
CVE-2026-74387
15 Aug 202606:22
nvd
osv
OSV
BELL-CVE-2026-74387
18 Aug 202606:06
osv
osv
OSV
DEBIAN-CVE-2026-74387
15 Aug 202606:22
osv
osv
OSV
UBUNTU-CVE-2026-74387
17 Aug 202600:00
osv
ptsecurity
Positive Technologies
PT-2026-72823
15 Aug 202600:00
ptsecurity
#%NASL_MIN_LEVEL 80900
##
# (C) Tenable, Inc.
##

include('compat.inc');

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

  script_cve_id("CVE-2026-74387");

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

  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.

  - ALSA: seq: midi: Serialize output teardown with event_input event_process_midi() borrows
    msynth->output_rfile.output and then passes the substream to dump_midi() and snd_rawmidi_kernel_write()
    without synchronizing with the output open/close transition. midisynth_use() also publishes output_rfile
    before snd_rawmidi_output_params() has finished. The last midisynth_unuse() can therefore release the same
    rawmidi file and free substream->runtime before snd_rawmidi_kernel_write1() takes its runtime buffer
    reference. That leaves the event_input path using a stale substream or runtime and can end in a NULL-deref
    or use-after-free. Fix this with two pieces of synchronization. Keep a short IRQ-safe spinlock only for
    publishing or clearing output_rfile and for pairing the output snapshot with an snd_use_lock_t reference.
    Once event_process_midi() has taken that in-flight reference, it drops the spinlock before calling
    snd_seq_dump_var_event(), dump_midi(), or snd_rawmidi_kernel_write(). midisynth_unuse() now detaches the
    visible rawmidi file under the same spinlock, waits for the in-flight writers to drain, and only then
    drains and releases the saved file. midisynth_use() likewise opens into a local snd_rawmidi_file and
    publishes it only after snd_rawmidi_output_params() succeeds. The buggy scenario involves two paths, with
    each column showing the order within that path: event_input path: last unuse path: 1. event_process_midi()
    snapshots 1. midisynth_unuse() starts output_rfile.output. tearing down output_rfile. 2. dump_midi()
    reaches 2. snd_rawmidi_kernel_release() snd_rawmidi_kernel_write() closes the output file. before runtime
    is pinned. 3. close_substream() frees 3. The callback keeps using substream->runtime. the borrowed
    substream. Validation reproduced this kernel report: KASAN null-ptr-deref in
    snd_rawmidi_kernel_write1+0x56/0x360 RIP: 0033:0x7fde7dd0837f RIP:
    0010:snd_rawmidi_kernel_write1+0x56/0x360 (CVE-2026-74387)

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

  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:"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 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.5Medium risk
Vulners AI Score5.5
CVSS 3.17.8
EPSS0.00125
7