high CVSS 7.8

CVE-2022-48670·Kernel vulnerability

In the Linux kernel, the following vulnerability has been resolved: peci: cpu: Fix use-after-free in adev_release() When auxiliary_device_add() returns an error, auxiliary_device_uninit() is called, which causes refcount for device to be decremented and .release callback will be triggered. Because adev_release() re-calls auxiliary_device_uninit(), it will cause use-after-free: [ 1269.455172] WARNING: CPU: 0 PID: 14267 at lib/refcount.c:28 refcount_warn_saturate+0x110/0x15 [ 1269.464007] refcount_t: underflow; use-after-free.

Severity
high
Software
Kernel
Fixed in
5.19.10
Published
2024-05-03

Affected versions

From: 5.18

Until: 5.19.10

Fixed in: 5.19.10

How to fix this CVE

Update your Linux kernel to version 5.19.10 or later to resolve this use-after-free vulnerability in the PECI CPU auxiliary device handler. The fix prevents double-uninitialization of auxiliary devices that fail during registration, which could cause kernel memory corruption. Apply the update through your distribution's package manager and reboot your system to complete the remediation.

sudo dnf update kernel kernel-devel

Defensia detects this vulnerability

How to check if you are affected

  1. Check your kernel version with: uname -r — vulnerable versions are 5.18.x through 5.19.9
  2. Verify PECI (Platform Environment Control Interface) support is enabled: grep -i peci /boot/config-$(uname -r) or cat /proc/config.gz | gunzip | grep -i peci
  3. Search kernel logs for refcount underflow warnings: grep -i 'refcount_t: underflow' /var/log/kern.log or journalctl -k | grep -i 'refcount'
  4. Confirm the fix by checking if kernel version is 5.19.10 or later: uname -r | awk -F. '{if($1==5 && $2==19 && $3>=10) print "Patched"; else print "Vulnerable"}'

FAQ

What is CVE-2022-48670?

This vulnerability is a use-after-free condition in the Linux kernel's PECI (Platform Environment Control Interface) CPU driver that occurs when an auxiliary device registration fails, causing the kernel to attempt to uninitialize an already-freed memory structure, leading to potential system instability or privilege escalation.

Is CVE-2022-48670 being actively exploited?

No, CVE-2022-48670 is not listed in the CISA KEV catalog and has no publicly available exploits. However, the vulnerability should still be patched promptly due to its high CVSS score (7.8) and potential for kernel memory corruption.

What versions of Kernel are affected by CVE-2022-48670?

Linux kernel versions 5.18 through 5.19.9 are affected. The vulnerability was resolved in kernel 5.19.10 and later stable releases.

How do I check if my server is vulnerable to CVE-2022-48670?

Run 'uname -r' to display your kernel version — if it is 5.18.x through 5.19.9, you are vulnerable. Additionally, verify PECI support with 'grep PECI /boot/config-$(uname -r)' to confirm the affected module is compiled into your kernel.

Does Defensia detect CVE-2022-48670?

Yes — Defensia's CVE advisory scanner compares installed kernel versions against the NVD database. If a vulnerable kernel is running on a monitored server, CVE-2022-48670 will appear in your dashboard with remediation steps and patch commands.

Related Kernel CVEs

CVE-2026-64439CVSS 9.8In the Linux kernel, the following vulnerability has been resolved: crypto: krb5 - filter out async aead implementations at alloc krb5_aead_encrypt(), krb5_aead_decrypt() in rfc3961_simplified.c and rfc8009_encrypt(), rfc8009_decrypt() in rfc8009_aes2.c set a NULL completion callback and treat any negative return from crypto_aead_{encrypt,decrypt}() as terminal, falling through to kfree_sensitive(buffer). When the encrypt_name resolves to an async AEAD instance the request returns -EINPROGRESS, the buffer is freed while the backend's worker still holds a pointer, and the worker dereferences the freed slab on completion. KASAN report under UML+SLUB with a synthetic async aead backend bound to krb5->encrypt_name: BUG: KASAN: slab-use-after-free in t5_stub_complete+0x7d/0xc7 The helpers were written synchronously, so filter the async instances out at allocation time instead of plumbing crypto_wait_req() through every call site. Reachable via net/rxrpc/rxgk.c, fs/afs/cm_security.c and net/ceph/crypto.c on systems with an async AEAD provider bound to the krb5 enctype name.
CVE-2026-100075CVSS 9.8In the Linux kernel, the following vulnerability has been resolved: RDMA/srpt: Fix srpt_alloc_rw_ctxs() unwind counters When srpt_alloc_rw_ctxs() fails partway through a multi-buffer indirect descriptor, the unwind path destroys RDMA contexts but leaves stale n_rw_ctx and n_rdma values (and a dangling rw_ctxs pointer). Later sq_wr_avail accounting in srpt_queue_response() or srpt_write_pending() can then subtract the wrong number of send queue credits. Reset the counters and clear rw_ctxs after freeing the heap allocation before returning an error.
CVE-2026-64383CVSS 9.8In the Linux kernel, the following vulnerability has been resolved: smb: client: fix double-free in SMB2_flush() replay SMB2_flush() keeps its response buffer bookkeeping across replay attempts. If a replayable flush response is received and the retry then fails before cifs_send_recv() stores a replacement response, flush_exit will free the stale response pointer a second time. Reinitialize resp_buftype and rsp_iov at the top of the replay loop so cleanup only acts on response state produced by the current attempt. This fixes a double-free without changing replay handling for successful requests.
CVE-2026-64385CVSS 9.8In the Linux kernel, the following vulnerability has been resolved: smb: client: fix double-free in SMB2_ioctl() replay A response-bearing attempt can return a replayable error and free its response buffer. If SMB2_ioctl_init() fails before the next send, cleanup retains the previous buffer type and frees that response again. Reset response bookkeeping before each attempt to prevent the stale free.
CVE-2026-64384CVSS 9.8In the Linux kernel, the following vulnerability has been resolved: smb: client: fix change notify replay double-free A response-bearing attempt can return a replayable error and free its response buffer. If SMB2_notify_init() fails before the next send, cleanup retains the previous buffer type and frees that response again. Reset response bookkeeping before each attempt to prevent the stale free.

References

Track CVEs across your fleet automatically

Defensia scans your Linux servers and tells you exactly which ones are running vulnerable versions — including CVE-2022-48670. Free for 1 server.

Get started free