CVE-2026-23356 in Linux
Zusammenfassung
von VulDB • 28.06.2026
Im Linux-Kernel wurde folgende Schwachstelle behoben:
drbd: Behebung eines „LOGIC BUG“ (Logikfehlers) in drbd_al_begin_io_nonblock()
Obwohl wir prüfen, ob wir lc_get_cumulative() aufrufen können, während das device->al_lock-Spinlock gehalten wird, kann dies dennoch fehlschlagen, wenn ein anderer Codepfad aufgrund ungünstiger Timing-Verhältnisse lc_try_lock() mit schlechten Bedingungen ausführt.
Traf dies zu, wurde „LOGIC BUG for enr=...“ protokolliert, es wurde jedoch weiterhin kein Fehler zurückgegeben.
Der Rest des Codes ging nun davon aus, dass diese Anforderung Referenzen für die relevanten Activity-Log-Ausdehnungen (Activity Log Extents) besitzt.
Die Implikationen bestehen darin, dass während eines aktiven Resync-Vorgangs die gegenseitige Ausschließlichkeit von Resync gegenüber Anwendungs-I/O nicht garantiert ist. Und ein potenzieller Absturz an dieser Stelle könnte erkennen, dass diese Ausdehnungen Ziel von in-flight I/O waren und im Zweifel neu synchronisiert werden müssten.
Sobald die Anforderung abgeschlossen ist, gibt sie Activity-Log-Referenzen auf, die sie gar nicht hält, was einen BUG_ON(refcnt == 0) in lc_put() auslöst.
Behandlung:
Den Kernel nicht für eine Bedingung abstürzen lassen, die im normalen Betrieb harmlos ist: Fangen Sie auch „e->refcnt == 0“ ab, nicht nur „e == NULL“, wenn lautstark gemeldet wird „al_complete_io() called on inactive extent %u\n“.
Und versuchen Sie nicht, schlau zu sein und zu „raten“, ob etwas funktionieren wird, um dann überrascht zu sein, wenn dies nicht der Fall ist. Gehen Sie damit um, dass es möglicherweise funktioniert oder auch nicht. Wenn es nicht funktioniert, merken Sie sich einen möglichen Zustand „partially in activity log“ (nur möglich für Anforderungen, die Extent-Grenzen überschreiten), und geben Sie einen Fehlercode von drbd_al_begin_io_nonblock() zurück.
Ein späterer Aufruf derselben Anforderung wird dann dort fortgesetzt, wo wir aufgehört haben.
If you want to get best quality of vulnerability data, you may have to visit VulDB.