CVE-2026-64251

pwrseq: core: fix use-after-free in pwrseq_debugfs_seq_next()

HIGH
7.8
CVSS Score
Published: July 24, 2026 at 03:31 PM UTC
Updated: August 17, 2026 at 05:17 AM UTC
1 product affected across 1 vendorLinux Kernel

Using Linux by Linux?

Get instant alerts when new vulnerabilities affect Linux - before attackers find them.

Real-time alertsTrack your software stackFree plan available
Severity
HIGH7.8
Exploit prediction
EPSS 0.2%

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.

Affected

Our own answer: ranges merged, affected separated from platform-only, with confidence and review flags.

6.11 ≤ v < 6.12.956.11 ≤ v < 6.18.386.11 ≤ v < 7.1.36.11 ≤ v < 7.26.13 ≤ v < 6.18.386.19 ≤ v < 7.1.3249ebf3f65f8530beb2cbfb91bff1d83ba88d23c6.11
Vendor states this is fixed in 257595adf9dac15ae1edd9d07753fbc576a7583d (fixed)
Vendor states this is fixed in 73569a44fca2992f0ca4a4c0104069741b9873a0 (fixed)
Vendor states this is fixed in ba0b9f04c7a5f9887b8ce672eaf049502c0548ec (fixed)
Vendor states this is fixed in e91df6d273445c03f5aa302bfe147eda33d45794 (fixed)
Vendor states this is fixed in 6.11 (unaffected)
Vendor states this is fixed in 6.12.95 (unaffected)
Vendor states this is fixed in 6.18.38 (unaffected)
Vendor states this is fixed in 7.1.3 (unaffected)
Vendor states this is fixed in 7.2 (unaffected)

CVSS

7.8HIGHLinux
Vector?

Quick Info

StatusANALYZED
CWE
CWE-416

Get alerted

Stop reading CVE feeds looking for your own stack

Track the products you run and VulnTracker tells you when a new CVE affects them — with what is known about fixing it, and nothing about the rest.

Free plan, no card