CVE-2026-89548

CVE-2026-89548

High · published September 12, 2026

CVSS v3.1
7.8
EPSS
0%
Percentile
2.1
In the wild
Unconfirmed
What it is

In the Linux kernel, the following vulnerability has been resolved:

SUNRPC: always drain cache_cleaner before destroying a cache_detail

sunrpc_destroy_cache_detail() only cancels the global cache_cleaner

delayed_work when cache_list is empty. During per-netns teardown

cache_list is never empty because init_net's caches remain registered,

so the cancel never fires. After unlink, the caller proceeds to

cache_destroy_net() which kfrees the cache_detail while cache_clean()

may still hold a dangling pointer to it. The result is a

use-after-free: cache_dequeue() takes cd->queue_lock on freed memory,

and cache_put() dereferences cd->cache_put as a function pointer from

freed slab.

Drop the list_empty guard so that cancel_delayed_work_sync() always

runs, ensuring any in-flight cache_clean() completes before the

cache_detail is freed. Re-arm the cleaner afterwards if other caches

are still registered.

The record
Technical detail
CVSS v3.1
7.8 · HIGH
Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
CVSS v4.0
Not supplied
EPSS
0.00126 · 2.1th percentile
Published
2026-09-12T00:19Z
References (8)
EPSS history
Timeline
  • 13 SEP 03:23Z
    EPSS moved — → 0%
    epss
  • 11 SEP 19:44Z
    SUNRPC: always drain cache_cleaner before destroying a cache_detail
    cvelistv5