Katalog CVE

CVE-2025-21810

WysokieCVSS 7.8
Opublikowano: Zaktualizowano: Przetłumaczono: NVD NIST

Prawdopodobieństwo exploitacji (EPSS)

Niskie ryzyko
0.20%

Percentyl 10 - wyżej niż 10% wszystkich znanych CVE

Streszczenie

W jądrze Linux w API class_dev_iter_next() występuje problem dzikich wskaźników. Funkcja class_dev_iter_init() nie inicjalizuje iteratora w przypadku błędu, a kolejne wywołania class_dev_iter_next() i class_dev_iter_exit() mogą dereferencjonować niezainicjalizowane wskaźniki, prowadząc do awarii.

Ocena ryzyka

Podatność może prowadzić do awarii systemu (DoS) przy próbie iteracji po klasach urządzeń, gdy wystąpi błąd inicjalizacji iteratora.

Rekomendacja

Zastosuj łatkę, która inicjalizuje iterator przez memset() w class_dev_iter_init() i dodaje sprawdzenie poprawności w class_dev_iter_next().

Inne podatności w Linux kernel

Zobacz wszystkie
Oryginalny opis (angielski, źródło NVD)

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().

Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS