CVE-2026-64251

High

Description

In the Linux kernel, the following vulnerability has been resolved: pwrseq: core: fix use-after-free in pwrseq_debugfs_seq_next() pwrseq_debugfs_seq_next() declares 'next' with __free(put_device), which causes put_device() to be called on the returned pointer when the variable goes out of scope. This results in a use-after-free since the seq_file framework receives a pointer whose reference has already been dropped. Simply removing __free(put_device) would fix the UAF but would leak the reference acquired by bus_find_next_device(), as stop() only calls up_read(&pwrseq_sem) and never releases the device reference. Fix this by making the reference counting consistent across all seq_file callbacks, matching the standard pattern used by PCI and SCSI: - start(): use get_device() so it returns a referenced pointer. - next(): explicitly put_device(curr) to release the previous device's reference (no NULL check needed - the seq_file framework only calls next() while the previous return was non-NULL). - stop(): put_device(data) to release the last iterated device's reference, with a NULL guard since stop() may be called with NULL when start() returned NULL or next() reached end-of-sequence.

SeverityHigh
CVSS7.8
Exploit probability—
ProductLinux Kernel
PublishedJul 24, 2026
First seenJul 24, 2026

How to fix

Update
  • linux linux_kernel6.12.95, 6.18.38, 7.1.3 or later

Affected products

ProductAffected versionsFixed in
linux linux_kernel6.11 ≤ v < 6.12.95, 6.13 ≤ v < 6.18.38, 6.19 ≤ v < 7.1.36.12.95, 6.18.38, 7.1.3

Check your version

Choose the product and enter the version you run to see whether it falls in the affected range.

In the Intelligence 360 plan

Attack Surface Management

See the assets tied to your domains, the technologies they run and known vulnerabilities in one list.