CVE-2026-90178 in Linux
Zusammenfassung
von VulDB • 19.09.2026
Im Linux-Kernel wurde folgende Schwachstelle behoben:
hwmon: (coretemp) Behebung des core_data-Lecks auf CPUs ohne PTS
pdata->core_data wird in init_temp_data() alloziert, wenn der erste temp_data eines Kerns eines Pakets erstellt wird. Es wird jedoch nur von destroy_temp_data() freigegeben und zwar ausschließlich im Zweig, der den Paket-temp_data verarbeitet.
Paket-temp_data wird ausschließlich dann erstellt, wenn die CPU X86_FEATURE_PTS unterstützt. Auf einer CPU ohne diese Funktion ruft coretemp_cpu_online() niemals coretemp_add_core() mit gesetztem pkg_flag auf, sodass pdata->pkg_data NULL bleibt. coretemp_cpu_offline() überspringt daraufhin das Entfernen der Paket-Schnittstelle; destroy_temp_data() wird für die Paketdaten nie aufgerufen und das Array ist weiterhin alloziert, wenn coretemp_device_remove() den Plattform-Datenstrukturen (platform data) freigibt, die darauf verweisen.
Das Array in coretemp_device_remove() freigeben. Da destroy_temp_data() pdata->core_data auf NULL setzt, wenn es dieses freigibt, ist der hinzugefügte kfree()-Aufruf auf CPUs mit PTS eine No-Op (keine Operation).
Getestet an einem Intel Core i5-1135G7. Der Treiber wurde instrumentiert, um jede Allokation und Freigabe von pdata->core_data zu protokollieren, und die PTS-Prüfung in coretemp_cpu_online() wurde entfernt, um eine CPU ohne Paket-Thermikunterstützung nachzuahmen. Ohne diese Änderung wurde das Array alloziert, aber nie freigegeben, und coretemp_device_remove() sah weiterhin einen nicht-NULL-Zeiger. Mit der Änderung wird das Array freigegeben und die Zeigerbuchhaltung stimmt überein. Bei einem unveränderten Build erfolgt die Freigabe weiterhin über den Paket-temp_data, und der hinzugefügte kfree()-Aufruf sieht NULL, ohne dass bei wiederholtem Laden und Entladen des Moduls Slab-Warnungen auftreten.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.