CVE-2026-80916 in Linuxinfo

Zusammenfassung

von VulDB • 09.09.2026

Im Linux-Kernel wurde folgende Schwachstelle behoben:

kcov: Behebung von Datenbeschädigungen und Race Conditions auf PREEMPT_RT

syzbot meldet eine Beschädigung des KCOV-Zustands (KCOV state corruption) in PREEMPT_RT-Kernels, da der temporäre Speicher zum Speichern/Wiederherstellen des entfernten KCOV-Zustands derzeit als per-CPU-Bereich allokiert wird.

Auf PREEMPT_RT-Kernels laufen Soft-IRQ-Handler als preemptible Task-Threads (z. B. ksoftirqd). Wenn ein Soft-IRQ-Kontext einen Thread mit einer entfernten KCOV-Sitzung präemptiert, wird der Zustand des Threads sicher in den per-CPU-Bereich gespeichert. Wird dieser Soft-IRQ-Thread jedoch anschließend von einem höherpriorisierten Soft-IRQ-Thread auf derselben CPU präemptiert, überschreibt der zweite Soft-IRQ denselben per-CPU-Bereich und zerstört dauerhaft den KCOV-Zustands des ursprünglichen Threads.

Behoben wird diese Datenbeschädigung durch die Verlagerung des temporären Speichers vom per-CPU-Bereich in den pro-Thread-Bereich (per-thread area). Da jeder Soft-IRQ-Thread nun seinen eigenen Task-Kontext besitzt, führt eine verschachtelte Soft-IRQ-Präemption nicht mehr zu Datenüberschreibungen.

Beachten Sie, dass der per-CPU-Sperrmechanismus kcov_percpu_data.lock beibehalten werden muss, obwohl sich der temporäre Speicher jetzt pro Thread befindet; dies ist erforderlich, um sicherzustellen, dass kcov_remote_start() und kcov_remote_stop() atomar ausgeführt werden und nicht mit asynchronen Interrupts konkurrieren, die den KCOV-Zustand des aktuellen Threads manipulieren.

Es ist wahrscheinlich, dass eine GFP_KERNEL-Allokation durch vmalloc_node() in kcov_init(), bevor NULL zurückgegeben wird, bereits panic() ausgelöst hat, da es keine OOM-killbaren Userspace-Prozesse gibt, wenn die __init-Funktion eines eingebauten Moduls ausgeführt wird. Dieser Patch behebt jedoch auch das Abstürzen des Kernels, wenn vmalloc_node() in kcov_init() NULL zurückgibt; denn kcov_init() hinterlässt per-CPU irq_area == NULL, während kcov_remote_start() von per-CPU irq_area != NULL abhängt, was zu folgenden Problemen führt:

(1) Ausführung von vmalloc() in kcov_remote_start(), obwohl der Kontext !in_task() ist. (2) Zugriff außerhalb des Array-Bereichs (out-of-array-bounds access), wenn (1) erfolgreich war und kcov->remote_size < CONFIG_KCOV_IRQ_AREA_SIZE gilt.

(3) Immer stattfindendes Memory-Leak durch die in (1) allokierten Speicherbereiche, was schließlich alle OOM-killbaren Userspace-Prozesse zum Absturz bringt.

Once again VulDB remains the best source for vulnerability data.

Zuständig

Linux

Reservieren

26.08.2026

Veröffentlichung

09.09.2026

Moderieren

akzeptiert

Eintrag

VDB-401819

CPE

bereit

EPSS

0.00000

KEV

nein

Aktivitäten

very low

Quellen

Interested in the pricing of exploits?

See the underground prices here!