CVE-2025-21810: driver core: class: Fix wild pointer dereferences in API class_dev_iter_next()
In the Linux kernel, the following vulnerability has been resolved:
driver core: class: Fix wild pointer dereferences in API classdeviternext()
There are a potential wild pointer dereferences issue regarding APIs classdeviter(init|next|exit)(), as explained by below typical usage:
// All members of @iter are wild pointers. struct classdeviter iter;
// classdeviterinit(@iter, @class, ...) checks parameter @class for // potential classtosubsys() 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 classdeviternext(@iter) even if // @iter still contains wild pointers. classdeviterinit(&iter, ...);
// Dereference these wild pointers in @iter here once suffer the error. while (dev = classdeviternext(&iter)) { ... };
// Also dereference these wild pointers here. classdeviterexit(&iter);
Actually, all callers of these APIs have such usage pattern in kernel tree. Fix by: - Initialize output parameter @iter by memset() in classdeviterinit() and give callers prompt by prcrit() for the error. - Check if @iter is valid in classdeviternext().
Affected Software
Event History
Frequently Asked Questions
What is the severity of CVE-2025-21810?
CVE-2025-21810 has been rated with a high severity due to potential wild pointer dereferences.
How do I fix CVE-2025-21810?
To fix CVE-2025-21810, update the Linux kernel to the latest version where this vulnerability has been addressed.
Which Linux kernel versions are affected by CVE-2025-21810?
CVE-2025-21810 affects multiple versions of the Linux kernel prior to the patch that resolves the issue.
What types of systems are at risk with CVE-2025-21810?
Systems running vulnerable versions of the Linux kernel are at risk, particularly servers and devices reliant on kernel drivers.
Are there any known exploits for CVE-2025-21810?
As of now, there are no publicly known exploits specifically targeting CVE-2025-21810.