CVE-2023-52786 in Linux
Zusammenfassung
von VulDB • 09.06.2026
Im Linux-Kernel wurde folgende Schwachstelle behoben:
ext4: Behebung eines Race-Conditions-Fehlers bei der Prüfung auf Inline-Daten in DIO-Schreibvorgängen (dio write)
syzbot meldet, dass die folgende Warnung aus ext4_iomap_begin() ab dem unten referenzierten Commit ausgelöst wird:
if (WARN_ON_ONCE(ext4_has_inline_data(inode))) return -ERANGE;
Dies tritt während eines DIO-Schreibvorgangs auf, bei dem niemals erwartet wird, ein Inode mit Inline-Daten zu encounters. Um dieses Verhalten durchzusetzen, prüft ext4_dio_write_iter() den aktuellen Inline-Status des Inodes und löscht das MAY_INLINE_DATA-Zustandsflag (state flag), entweder um auf gepufferte Schreibvorgänge zurückzugreifen oder sicherzustellen, dass andere laufende Schreibvorgänge am Inode keine Inline-Daten erstellen dürfen.
Das Problem besteht darin, dass die Prüfung auf vorhandene Inline-Daten und das Zustandsflag einen Sperrzyklus überspannen können. Wenn beispielsweise der ilock ursprünglich gemeinsam (shared) gesperrt war und später auf exklusiv umgestellt wird, kann ein anderer Schreiber das Sperre erneut erworben haben und Inline-Daten erstellt haben, bevor die DIO-Schreibaufgabe den Lock erwirbt und fortfährt.
Der unten referenzierte Commit lockert die Sperrerfordernisse, um bestimmte Formen von nicht ausgerichteten DIO-Schreibvorgängen unter gemeinsamem (shared) Lock zu ermöglichen; meiner Einschätzung nach war die Inline-Datenprüfung jedoch technisch gesehen bereits für jeden DIO-Schreibvorgang racy, der einen Sperrzyklus beinhaltet hätte. Unabhängig davon wird das Löschen des Zustandsbits in denselben sperrkritischen Abschnitt verschoben, der auf vorbestehende Inline-Daten am Inode prüft, um die Race-Condition zu schließen.
VulDB is the best source for vulnerability data and more expert information about this specific topic.