Lucene search
+L

Linux Distros Unpatched Vulnerability : CVE-2026-64418

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

Linux vulnerability CVE-2026-64418: unpatched shrinker_info teardown race during cgroup expansion.

Related
Refs
Code
ReporterTitlePublishedViews
Family
CVE
CVE-2026-64418
25 Jul 202608:50
cve
Cvelist
CVE-2026-64418 mm: shrinker: fix shrinker_info teardown race with expansion
25 Jul 202608:50
cvelist
Debian CVE
CVE-2026-64418
25 Jul 202608:50
debiancve
EUVD
EUVD-2026-48962
25 Jul 202608:50
euvd
NVD
CVE-2026-64418
25 Jul 202610:17
nvd
OSV
CVE-2026-64418 mm: shrinker: fix shrinker_info teardown race with expansion
25 Jul 202608:50
osv
OSV
DEBIAN-CVE-2026-64418
25 Jul 202610:17
osv
Positive Technologies
PT-2026-64639
25 Jul 202600:00
ptsecurity
SUSE CVE
SUSE CVE-2026-64418
25 Jul 202615:59
susecve
#%NASL_MIN_LEVEL 80900
##
# (C) Tenable, Inc.
##

include('compat.inc');

if (description)
{
  script_id(329987);
  script_version("1.1");
  script_set_attribute(attribute:"plugin_modification_date", value:"2026/07/25");

  script_cve_id("CVE-2026-64418");

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

  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.

  - mm: shrinker: fix shrinker_info teardown race with expansion expand_shrinker_info() iterates all visible
    memcgs under shrinker_mutex, including memcgs that have not finished ->css_online() yet. Once
    pn->shrinker_info has been published, teardown must stay serialized with expand_shrinker_info() until that
    memcg is either fully online or no longer visible to iteration. Today alloc_shrinker_info() breaks that
    rule by dropping shrinker_mutex before freeing a partially initialized shrinker_info array, which may
    cause the following race: CPU0 CPU1 ==== ==== css_create --> list_add_tail_rcu(&css->sibling,
    &parent_css->children); online_css --> mem_cgroup_css_online --> alloc_shrinker_info --> alloc node0 info
    rcu_assign_pointer(C->node0->shrinker_info, old0) alloc node1 info -> FAIL -> goto err
    mutex_unlock(shrinker_mutex) shrinker_alloc() --> shrinker_memcg_alloc --> mutex_lock(shrinker_mutex)
    expand_shrinker_info --> mem_cgroup_iter see the memcg expand_one_shrinker_info --> old0 =
    C->node0->shrinker_info memcpy(new->unit, old0->unit, ...); free_shrinker_info --> kvfree(old0); /* double
    free !! */ kvfree_rcu(old0, rcu); The same problem exists later in mem_cgroup_css_online(). If
    alloc_shrinker_info() succeeds but a subsequent objcg allocation fails, the free_objcg ->
    free_shrinker_info() unwind path tears down the already published pn->shrinker_info arrays without
    shrinker_mutex. The expand_one_shrinker_info() can race with that teardown in the same way, leading to
    use-after-free or double-free of the old shrinker_info. Fix this by serializing shrinker_info teardown
    with shrinker_mutex, and by keeping alloc_shrinker_info() error cleanup inside the locked section.
    (CVE-2026-64418)

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

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

  script_set_attribute(attribute:"plugin_type", value:"local");
  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-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.3+deb14-alpha-generic"},
          {"reference": "linux-base-7.1.3+deb14-alpha-smp"},
          {"reference": "linux-base-7.1.3+deb14-amd64"},
          {"reference": "linux-base-7.1.3+deb14-arm64"},
          {"reference": "linux-base-7.1.3+deb14-arm64-16k"},
          {"reference": "linux-base-7.1.3+deb14-armmp"},
          {"reference": "linux-base-7.1.3+deb14-armmp-lpae"},
          {"reference": "linux-base-7.1.3+deb14-cloud-amd64"},
          {"reference": "linux-base-7.1.3+deb14-cloud-arm64"},
          {"reference": "linux-base-7.1.3+deb14-loong64"},
          {"reference": "linux-base-7.1.3+deb14-m68k"},
          {"reference": "linux-base-7.1.3+deb14-parisc"},
          {"reference": "linux-base-7.1.3+deb14-parisc64"},
          {"reference": "linux-base-7.1.3+deb14-powerpc"},
          {"reference": "linux-base-7.1.3+deb14-powerpc-smp"},
          {"reference": "linux-base-7.1.3+deb14-powerpc64"},
          {"reference": "linux-base-7.1.3+deb14-powerpc64-64k"},
          {"reference": "linux-base-7.1.3+deb14-powerpc64le"},
          {"reference": "linux-base-7.1.3+deb14-powerpc64le-64k"},
          {"reference": "linux-base-7.1.3+deb14-riscv64"},
          {"reference": "linux-base-7.1.3+deb14-rt-amd64"},
          {"reference": "linux-base-7.1.3+deb14-rt-arm64"},
          {"reference": "linux-base-7.1.3+deb14-s390x"},
          {"reference": "linux-base-7.1.3+deb14-sh7751r"},
          {"reference": "linux-base-7.1.3+deb14-sparc64"},
          {"reference": "linux-base-7.1.3+deb14-sparc64-smp"},
          {"reference": "linux-base-7.1.3+deb14-test"}
        ]
      }
    ]
  }
};

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

25 Jul 2026 00:00Current
5.8Medium risk
Vulners AI Score5.8
EPSS0.00209
2