CVE-2025-21810CWE-476

CVE-2025-21810

High · published February 28, 2025

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

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

driver core: class: Fix wild pointer dereferences in API class_dev_iter_next()

There are a potential wild pointer dereferences issue regarding APIs

class_dev_iter_(init|next|exit)(), as explained by below typical usage:

// All members of @iter are wild pointers.

struct class_dev_iter iter;

// class_dev_iter_init(@iter, @class, ...) checks parameter @class for

// potential class_to_subsys() error, and it returns void type and does

// not initialize its output parameter @iter, so caller can not detect

// the error and continues to invoke class_dev_iter_next(@iter) even if

// @iter still contains wild pointers.

class_dev_iter_init(&iter, ...);

// Dereference these wild pointers in @iter here once suffer the error.

while (dev = class_dev_iter_next(&iter)) { ... };

// Also dereference these wild pointers here.

class_dev_iter_exit(&iter);

Actually, all callers of these APIs have such usage pattern in kernel tree.

Fix by:

- Initialize output parameter @iter by memset() in class_dev_iter_init()

and give callers prompt by pr_crit() for the error.

- Check if @iter is valid in class_dev_iter_next().

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.00202 · 9.7th percentile
Weakness
CWE-476 · NULL Pointer Dereference
Published
2025-02-28T01:16Z
Affected products (3)
ProductVersionsFixed in
linux/linux_kernel≥ 6.4, < 6.6.766.6.76
linux/linux_kernel≥ 6.7, < 6.12.136.12.13
linux/linux_kernel≥ 6.13, < 6.13.26.13.2
References (4)
EPSS history
Timeline
  • 27 FEB 20:01Z
    driver core: class: Fix wild pointer dereferences in API class_dev_iter_next()
    cvelistv5