CVE-2026-74601 in Linuxinfo

Zusammenfassung

von VulDB • 22.08.2026

Im Linux-Kernel wurde folgende Schwachstelle behoben:

ring-buffer: Verwendung von current_context für einen sicheren per-CPU-Pufferswap

Die Funktion ring_buffer_swap_cpu() überprüft derzeit den pro-CPU-Committing-Zähler, um festzustellen, ob ein Puffer aktiv beschrieben wird, bevor der Swap durchgeführt wird. Es besteht jedoch eine Race Condition (Wettlaufsituation), bei der diese Überprüfung umgangen werden kann:

ring_buffer_lock_reserve cpu_buffer = buffer->buffers[cpu]; // cpu_buffer_a
rb_reserve_next_event rb_start_commit // erhöht committing if (unlikely(READ_ONCE(cpu_buffer->buffer) != buffer)) {...}
__rb_reserve_next rb_move_tail rb_end_commit(cpu_buffer); // dekrementiert committing => 0 /* Interrupt trifft hier ein, Swap gelingt erfolgreich! */ local_inc(&cpu_buffer->committing);

ring_buffer_unlock_commit cpu_buffer = buffer->buffers[cpu]; // cpu_buffer_b
rb_commit rb_end_commit RB_WARN_ON(cpu_buffer, !local_read(&cpu_buffer->committing)) // löst Warnung aus

Der Committing-Zähler kann während eines einzelnen Schreibvorgangs (innerhalb von rb_move_tail) vorübergehend auf 0 sinken, was einen Zeitraum schafft, in dem der Swap erfolgreich sein kann, obwohl das Schreiben noch im Gange ist. Dies führt zu einem inkonsistenten Pufferzustand und löst die RB_WARN_ON-Warnung in rb_commit() aus.

Ersetzen Sie die Überprüfung des Committing-Zählers durch Prüfungen von current_context, die beim Eintritt in ring_buffer_lock_reserve() festgelegt werden und während des gesamten Schreibvorgangs gültig bleiben, was einen zuverlässigen Indikator für den Puffer-Belegtheitszustand (buffer busy state) während des Swaps bietet.

Be aware that VulDB is the high quality source for vulnerability data.

Zuständig

Linux

Reservieren

15.08.2026

Veröffentlichung

22.08.2026

Moderieren

akzeptiert

Eintrag

VDB-394381

CPE

bereit

EPSS

0.00000

KEV

nein

Aktivitäten

low

Quellen

Want to stay up to date on a daily basis?

Enable the mail alert feature now!