In the Linux kernel, the following vulnerability has been resolved:
SUNRPC: make sure cache entry active before cache_show
The function c_show
was called with protection from RCU. This only
ensures that cp
will not be freed. Therefore, the reference count for
cp
can drop to zero, which will trigger a refcount use-after-free
warning when cache_get
is called. To resolve this issue, use
cache_get_rcu
to ensure that cp
remains active.
------------[ cut here ]------------ refcountt: addition on 0; use-after-free. WARNING: CPU: 7 PID: 822 at lib/refcount.c:25 refcountwarnsaturate+0xb1/0x120 CPU: 7 UID: 0 PID: 822 Comm: cat Not tainted 6.12.0-rc3+ #1 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.16.1-2.fc37 04/01/2014 RIP: 0010:refcountwarn_saturate+0xb1/0x120
Call Trace: <TASK> cshow+0x2fc/0x380 [sunrpc] seqreaditer+0x589/0x770 seqread+0x1e5/0x270 procregread+0xe1/0x140 vfsread+0x125/0x530 ksysread+0xc1/0x160 dosyscall64+0x5f/0x170 entrySYSCALL64afterhwframe+0x76/0x7e