s2
--:--:--UTC

Searching APEX

Starting…

  1. ○ Searching Threats, IOCs & Threat Intelligence locally
  2. ○ Querying external providers
  3. ○ Asking AI Forensic Validator
  4. ○ Creating new entry from validated hit

0s elapsed

CVE-2026-93208

📛 CVE Title

kasan: fix cache shrink race with CPU hotplug

Description

In the Linux kernel, the following vulnerability has been resolved: kasan: fix cache shrink race with CPU hotplug kasan_quarantine_remove_cache() first invokes per_cpu_remove_cache() on all online CPUs. Each callback moves objects belonging to the cache from cpu_quarantine to the CPU's shrink_qlist, where they can later be freed from task context. kmem_cache_destroy() invokes the quarantine removal path while holding cpus_read_lock(), but kmem_cache_shrink() does not. The latter can therefore race with CPU offlining as follows: kmem_cache_shrink() CPU hotplug ------------------- ----------- on_each_cpu() CPU1 moves objects to CPU1's shrink_qlist on_each_cpu() returns CPU1 goes offline kasan_cpu_offline() drains cpu_quarantine leaves shrink_qlist untouched for_each_online_cpu() skips CPU1 The objects left on CPU1's shrink_qlist are not returned to the slab allocator. This may prevent kmem_cache_shrink() from releasing slabs that would otherwise become empty. If CPU1 remains offline, a later kmem_cache_destroy() also skips the list and can report that the cache still contains objects. An intermittent occurrence was observed with a virtio-9p filesystem. The mount and umount commands both returned 0, but the kernel logged the following during the userspace-triggered teardown: [ 2994.380134][ T111] BUG 9p-fcall-cache-1 (Tainted: G B ): Objects remaining on __kmem_cache_shutdown() [ 2994.381140][ T111] Object 0xff11000004361118 @offset=4376 [ 2994.381607][ T111] Allocated in p9_fcall_init+0x201/0x400 age=19564 cpu=1 pid=104 [ 2994.382591][ T111] p9_fcall_init+0x201/0x400 [ 2994.382810][ T111] p9_tag_alloc+0x12f/0x700 [ 2994.382982][ T111] p9_client_prepare_req+0x102/0x3e0 [ 2994.383165][ T111] p9_client_rpc+0x1ab/0xa50 [ 2994.383334][ T111] p9_client_getattr_dotl+0xb0/0x1a0 [ 2994.383515][ T111] v9fs_vfs_getattr_dotl+0x115/0x360 [ 2994.383719][ T111] vfs_getattr_nosec+0x22c/0x3a0 [ 2994.383910][ T111] vfs_statx+0xd7/0x170 [ 2994.384062][ T111] vfs_fstatat+0x45/0x80 [ 2994.384215][ T111] __do_sys_newfstatat+0x84/0xe0 [ 2994.384386][ T111] do_syscall_64+0x115/0x6a0 [ 2994.384566][ T111] entry_SYSCALL_64_after_hwframe+0x77/0x7f [ 2994.399720][ T111] WARNING: mm/slub.c:1244 at __kmem_cache_shutdown+0x363/0x500, CPU#0: busybox/111 [ 2994.405655][ T111] Call Trace: [ 2994.406325][ T111] kmem_cache_destroy+0x73/0x1b0 [ 2994.406630][ T111] p9_client_destroy+0x271/0x3c0 [ 2994.407210][ T111] v9fs_session_close+0x3c/0x260 [ 2994.407409][ T111] v9fs_kill_super+0x48/0x90 [ 2994.407584][ T111] deactivate_locked_super+0xa3/0x160 [ 2994.407778][ T111] cleanup_mnt+0x1dd/0x3e0 Thus, a successful umount left objects in the 9p fcall cache and prevented the cache from being destroyed cleanly. Per-CPU shrink_qlist storage exists for every possible CPU, and each list is protected by its own raw spinlock. Iterate over possible CPUs so that a list populated before its CPU went offline is drained as well. for_each_possible_cpu() can do more work than for_each_online_cpu(), but this change only affects CONFIG_KASAN_GENERIC kernels. The extra work is limited to cache shrink and cache destruction paths and does not affect the normal allocation/free fast path. It adds one raw-spinlock-protected scan of each possible CPU's shrink list. These lists are normally empty; a non-empty list is traversed to remove objects belonging to the cache being shrunk or destroyed.

Overview

State
PUBLISHED
Assigner (CNA)
Linux
CVSS severity
—
CVSS score
—
CVSS vector
—
Effective score
no score available from CNA, NVD, or AI yet
CWE(s)
—
Reserved
2026-09-17
Published
2026-09-24 15:10 UTC
Last updated
2026-09-24 15:10 UTC
Source
https://raw.githubusercontent.com/CVEProject/cvelistV5/main/cves/2026/93xxx/CVE-2026-93208.json

NVD / KEV / EPSS data refreshed 2026-09-25 04:32 UTC. Re-run the 🛰 Backfill from NVD button above to refresh.

AI-forensic CVSS estimate

Used only when a CVE has no official CVSS from its CNA or NVD. An LLM estimates the v3.1 base score from the description; a HIGH/CRITICAL estimate promotes the CVE to a Threat.

No AI estimate yet — it runs automatically once NVD has been checked, or click the button above.

European Union Vulnerability Database ENISA EUVD

ENISA's official EU repository for curated vulnerability intelligence. Carries a separate identifier (EUVD-YYYY-NNNN) and frequently exposes an earlier-published description + CVSS than NVD does.

EUVD ID
EUVD-2026-85937
Assigner
Linux
Published
Sep 24, 2026, 3:10:31 PM
Updated
Sep 24, 2026, 3:10:31 PM
EUVD base score
0.0 / 10
EUVD-reported EPSS
0.0000
Vendors
Linux
Products
Linux (07d067e4f2ceb72b9f681995cc53828caaba9e6e <7cd164f0e1bab0f8dd125c92ed4f19bbd6b92a4a)
Linux (patch: 6.18.50)
Linux (patch: 7.2.4)
Linux (07d067e4f2ceb72b9f681995cc53828caaba9e6e <3119d58e4ef8719d669911d38a53fc00086ac48b)
Linux (patch: 7.3-rc1)
Linux (07d067e4f2ceb72b9f681995cc53828caaba9e6e <709c3646545e0a1f99a5816384c633f6552c5a98)
Linux (patch: 0)
Linux (patch: 6.6.157)
Linux (07d067e4f2ceb72b9f681995cc53828caaba9e6e <30e8cb8598aa41b1b9f8803081d2ae5e5369c0f3)
Linux (07d067e4f2ceb72b9f681995cc53828caaba9e6e <8790303cbaac52a11dfed4aab261f8ea60682525)
Linux (5.19)
Linux (patch: 6.12.109)
Aliases
GHSA-fgp6-x4jf-pff3

ENISA description: In the Linux kernel, the following vulnerability has been resolved: kasan: fix cache shrink race with CPU hotplug kasan_quarantine_remove_cache() first invokes per_cpu_remove_cache() on all online CPUs. Each callback moves objects belonging to the cache from cpu_quarantine to the CPU's shrink_qlist, where they can later be freed from task context. kmem_cache_destroy() invokes the quarantine removal path while holding cpus_read_lock(), but kmem_cache_shrink() does not. The latter can therefore race with CPU offlining as follows: kmem_cache_shrink() CPU hotplug ------------------- ----------- on_each_cpu() CPU1 moves objects to CPU1's shrink_qlist on_each_cpu() returns CPU1 goes offline kasan_cpu_offline() drains cpu_quarantine leaves shrink_qlist untouched for_each_online_cpu() skips CPU1 The objects left on CPU1's shrink_qlist are not returned to the slab allocator. This may prevent kmem_cache_shrink() from releasing slabs that would otherwise become empty. If CPU1 remains offline, a later kmem_cache_destroy() also skips the list and can report that the cache still contains objects. An intermittent occurrence was observed with a virtio-9p filesystem. The mount and umount commands both returned 0, but the kernel logged the following during the userspace-triggered teardown: [ 2994.380134][ T111] BUG 9p-fcall-cache-1 (Tainted: G B ): Objects remaining on __kmem_cache_shutdown() [ 2994.381140][ T111] Object 0xff11000004361118 @offset=4376 [ 2994.381607][ T111] Allocated in p9_fcall_init+0x201/0x400 age=19564 cpu=1 pid=104 [ 2994.382591][ T111] p9_fcall_init+0x201/0x400 [ 2994.382810][ T111] p9_tag_alloc+0x12f/0x700 [ 2994.382982][ T111] p9_client_prepare_req+0x102/0x3e0 [ 2994.383165][ T111] p9_client_rpc+0x1ab/0xa50 [ 2994.383334][ T111] p9_client_getattr_dotl+0xb0/0x1a0 [ 2994.383515][ T111] v9fs_vfs_getattr_dotl+0x115/0x360 [ 2994.383719][ T111] vfs_getattr_nosec+0x22c/0x3a0 [ 2994.383910][ T111] vfs_statx+0xd7/0x170 [ 2994.384062][ T111] vfs_fstatat+0x45/0x80 [ 2994.384215][ T111] __do_sys_newfstatat+0x84/0xe0 [ 2994.384386][ T111] do_syscall_64+0x115/0x6a0 [ 2994.384566][ T111] entry_SYSCALL_64_after_hwframe+0x77/0x7f [ 2994.399720][ T111] WARNING: mm/slub.c:1244 at __kmem_cache_shutdown+0x363/0x500, CPU#0: busybox/111 [ 2994.405655][ T111] Call Trace: [ 2994.406325][ T111] kmem_cache_destroy+0x73/0x1b0 [ 2994.406630][ T111] p9_client_destroy+0x271/0x3c0 [ 2994.407210][ T111] v9fs_session_close+0x3c/0x260 [ 2994.407409][ T111] v9fs_kill_super+0x48/0x90 [ 2994.407584][ T111] deactivate_locked_super+0xa3/0x160 [ 2994.407778][ T111] cleanup_mnt+0x1dd/0x3e0 Thus, a successful umount left objects in the 9p fcall cache and prevented the cache from being destroyed cleanly. Per-CPU shrink_qlist storage exists for every possible CPU, and each list is protected by its own raw spinlock. Iterate over possible CPUs so that a list populated before its CPU went offline is drained as well. for_each_possible_cpu() can do more work than for_each_online_cpu(), but this change only affects CONFIG_KASAN_GENERIC kernels. The extra work is limited to cache shrink and cache destruction paths and does not affect the normal allocation/free fast path. It adds one raw-spinlock-protected scan of each possible CPU's shrink list. These lists are normally empty; a non-empty list is traversed to remove objects belonging to the cache being shrunk or destroyed.

EUVD references (5)

Affected products (2)

VendorProductVersionsPlatforms
Linux Linux 07d067e4f2ceb72b9f681995cc53828caaba9e6e (affected), 07d067e4f2ceb72b9f681995cc53828caaba9e6e (affected), 07d067e4f2ceb72b9f681995cc53828caaba9e6e (affected), 07d067e4f2ceb72b9f681995cc53828caaba9e6e (affected), 07d067e4f2ceb72b9f681995cc53828caaba9e6e (affected) —
Linux Linux 5.19 (affected), 0 (unaffected), 6.6.157 (unaffected), 6.12.109 (unaffected), 6.18.50 (unaffected), 7.2.4 (unaffected), 7.3-rc1 (unaffected) —

Vendor references (5)

References embedded in the original CVE record by the assigning CNA.

Web references (0)

DuckDuckGo results ranked by threat-intel / vendor advisory domains. Generated by the 🔎 Find references (web) button above — same flow as the Remediations search.

No web references attached yet.

Remediations (10)

  • web:helpx.adobe.com

    This page contains important information regarding security vulnerabilities that could affect specific versions of Adobe products. Use this information to take the prescribed corrective actions.

    2026-09-25 10:45 UTC
  • web:learn.microsoft.com

    Unlike traditional cumulative updates that patch individual components, this update delivers the full .NET Framework 3.5 product as a standalone installer. It replaces any previously installed version.

    2026-09-25 10:45 UTC
  • web:msrc-ppe.microsoft.com

    The Microsoft Security Response Center (MSRC) investigates all reports of security vulnerabilities affecting Microsoft products and services, and provides the information here as part of the ongoing effort to help you manage security risks and help keep your systems protected.

    2026-09-25 10:45 UTC
  • web:sec.cloudapps.cisco.com

    On September 16, 2026 , the Cisco Product Security Incident Response Team (PSIRT) published the advisories that are listed in the following tables. To remediate these vulnerabilities, Cisco strongly recommends that customers upgrade to the fixed software that is indicated in the advisories. For more information about changes in Cisco PSIRT vulnerability disclosure, see Strengthening the ...

    2026-09-25 10:45 UTC
  • web:support.sap.com

    On 14 th of July 2026 , SAP security patch day saw the release of 16 new security notes and 1 Github security advisory. There are 3 updates to previously released security notes.

    2026-09-25 10:45 UTC
  • web:www.aikido.dev

    CVE remediation is fixing known flaws in the software you run. Why upgrading often fails, what remediation actually involves, and how backporting fixes it.

    2026-09-25 10:45 UTC
  • web:www.cisecurity.org

    <p>Multiple vulnerabilities have been discovered in Microsoft products, the most severe of which could allow for remote code execution. Successful exploitation of the most severe of these vulnerabilities could result in an attacker gaining the same privileges as the logged-on user. Depending on the privileges associated with the user, an attacker could then install programs; view, change, or ...

    2026-09-25 10:45 UTC
  • web:www.crowdstrike.com

    Microsoft has released security updates for 972 vulnerabilities, including two exploited zero-days and 113 critical, in its September 2026 Patch Tuesday rollout.

    2026-09-25 10:45 UTC
  • web:www.oracle.com

    This Critical Patch Update contains 1448 new security patches across the product families listed below. Please note that a My Oracle Support (MOS) note summarizing the content of this Critical Patch Update and other Oracle Software Security Assurance activities is located at July 2026 Critical Patch Update: Executive Summary and Analysis.

    2026-09-25 10:45 UTC
  • web:zecurit.com

    Get the complete breakdown of Microsoft's September 2026 Patch Tuesday. We analyze the latest security updates and all critical CVEs .

    2026-09-25 10:45 UTC

AI Forensic Analysis

Only Available for Registered Users. Sign in to view.

Raw JSON

The full cvelistV5 record. Download as CVE-2026-93208.json.

{
  "containers": {
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "mm/kasan/quarantine.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "7cd164f0e1bab0f8dd125c92ed4f19bbd6b92a4a",
              "status": "affected",
              "version": "07d067e4f2ceb72b9f681995cc53828caaba9e6e",
              "versionType": "git"
            },
            {
              "lessThan": "709c3646545e0a1f99a5816384c633f6552c5a98",
              "status": "affected",
              "version": "07d067e4f2ceb72b9f681995cc53828caaba9e6e",
              "versionType": "git"
            },
            {
              "lessThan": "30e8cb8598aa41b1b9f8803081d2ae5e5369c0f3",
              "status": "affected",
              "version": "07d067e4f2ceb72b9f681995cc53828caaba9e6e",
              "versionType": "git"
            },
            {
              "lessThan": "3119d58e4ef8719d669911d38a53fc00086ac48b",
              "status": "affected",
              "version": "07d067e4f2ceb72b9f681995cc53828caaba9e6e",
              "versionType": "git"
            },
            {
              "lessThan": "8790303cbaac52a11dfed4aab261f8ea60682525",
              "status": "affected",
              "version": "07d067e4f2ceb72b9f681995cc53828caaba9e6e",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "mm/kasan/quarantine.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "5.19"
            },
            {
              "lessThan": "5.19",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.6.*",
              "status": "unaffected",
              "version": "6.6.157",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.12.*",
              "status": "unaffected",
              "version": "6.12.109",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.18.*",
              "status": "unaffected",
              "version": "6.18.50",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "7.2.*",
              "status": "unaffected",
              "version": "7.2.4",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "7.3-rc1",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.6.157",
                  "versionStartIncluding": "5.19",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.12.109",
                  "versionStartIncluding": "5.19",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.18.50",
                  "versionStartIncluding": "5.19",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.2.4",
                  "versionStartIncluding": "5.19",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.3-rc1",
                  "versionStartIncluding": "5.19",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nkasan: fix cache shrink race with CPU hotplug\n\nkasan_quarantine_remove_cache() first invokes per_cpu_remove_cache() on\nall online CPUs.  Each callback moves objects belonging to the cache from\ncpu_quarantine to the CPU's shrink_qlist, where they can later be freed\nfrom task context.\n\nkmem_cache_destroy() invokes the quarantine removal path while holding\ncpus_read_lock(), but kmem_cache_shrink() does not.  The latter can\ntherefore race with CPU offlining as follows:\n\n  kmem_cache_shrink()             CPU hotplug\n  -------------------             -----------\n  on_each_cpu()\n    CPU1 moves objects to\n    CPU1's shrink_qlist\n  on_each_cpu() returns\n                                  CPU1 goes offline\n                                  kasan_cpu_offline()\n                                    drains cpu_quarantine\n                                    leaves shrink_qlist untouched\n  for_each_online_cpu()\n    skips CPU1\n\nThe objects left on CPU1's shrink_qlist are not returned to the slab\nallocator.  This may prevent kmem_cache_shrink() from releasing slabs that\nwould otherwise become empty.  If CPU1 remains offline, a later\nkmem_cache_destroy() also skips the list and can report that the cache\nstill contains objects.\n\nAn intermittent occurrence was observed with a virtio-9p filesystem.  The\nmount and umount commands both returned 0, but the kernel logged the\nfollowing during the userspace-triggered teardown:\n\n  [  2994.380134][  T111] BUG 9p-fcall-cache-1 (Tainted: G    B              ): Objects remaining on __kmem_cache_shutdown()\n  [  2994.381140][  T111] Object 0xff11000004361118 @offset=4376\n  [  2994.381607][  T111] Allocated in p9_fcall_init+0x201/0x400 age=19564 cpu=1 pid=104\n  [  2994.382591][  T111]  p9_fcall_init+0x201/0x400\n  [  2994.382810][  T111]  p9_tag_alloc+0x12f/0x700\n  [  2994.382982][  T111]  p9_client_prepare_req+0x102/0x3e0\n  [  2994.383165][  T111]  p9_client_rpc+0x1ab/0xa50\n  [  2994.383334][  T111]  p9_client_getattr_dotl+0xb0/0x1a0\n  [  2994.383515][  T111]  v9fs_vfs_getattr_dotl+0x115/0x360\n  [  2994.383719][  T111]  vfs_getattr_nosec+0x22c/0x3a0\n  [  2994.383910][  T111]  vfs_statx+0xd7/0x170\n  [  2994.384062][  T111]  vfs_fstatat+0x45/0x80\n  [  2994.384215][  T111]  __do_sys_newfstatat+0x84/0xe0\n  [  2994.384386][  T111]  do_syscall_64+0x115/0x6a0\n  [  2994.384566][  T111]  entry_SYSCALL_64_after_hwframe+0x77/0x7f\n  [  2994.399720][  T111] WARNING: mm/slub.c:1244 at __kmem_cache_shutdown+0x363/0x500, CPU#0: busybox/111\n  [  2994.405655][  T111] Call Trace:\n  [  2994.406325][  T111]  kmem_cache_destroy+0x73/0x1b0\n  [  2994.406630][  T111]  p9_client_destroy+0x271/0x3c0\n  [  2994.407210][  T111]  v9fs_session_close+0x3c/0x260\n  [  2994.407409][  T111]  v9fs_kill_super+0x48/0x90\n  [  2994.407584][  T111]  deactivate_locked_super+0xa3/0x160\n  [  2994.407778][  T111]  cleanup_mnt+0x1dd/0x3e0\n\nThus, a successful umount left objects in the 9p fcall cache and prevented\nthe cache from being destroyed cleanly.\n\nPer-CPU shrink_qlist storage exists for every possible CPU, and each list\nis protected by its own raw spinlock.  Iterate over possible CPUs so that\na list populated before its CPU went offline is drained as well.\n\nfor_each_possible_cpu() can do more work than for_each_online_cpu(), but\nthis change only affects CONFIG_KASAN_GENERIC kernels.  The extra work is\nlimited to cache shrink and cache destruction paths and does not affect\nthe normal allocation/free fast path.  It adds one raw-spinlock-protected\nscan of each possible CPU's shrink list.  These lists are normally empty;\na non-empty list is traversed to remove objects belonging to the cache\nbeing shrunk or destroyed."
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-09-24T15:10:31.888Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/7cd164f0e1bab0f8dd125c92ed4f19bbd6b92a4a"
        },
        {
          "url": "https://git.kernel.org/stable/c/709c3646545e0a1f99a5816384c633f6552c5a98"
        },
        {
          "url": "https://git.kernel.org/stable/c/30e8cb8598aa41b1b9f8803081d2ae5e5369c0f3"
        },
        {
          "url": "https://git.kernel.org/stable/c/3119d58e4ef8719d669911d38a53fc00086ac48b"
        },
        {
          "url": "https://git.kernel.org/stable/c/8790303cbaac52a11dfed4aab261f8ea60682525"
        }
      ],
      "title": "kasan: fix cache shrink race with CPU hotplug",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2026-93208",
    "datePublished": "2026-09-24T15:10:31.888Z",
    "dateReserved": "2026-09-17T16:02:15.093Z",
    "dateUpdated": "2026-09-24T15:10:31.888Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2"
}