CVE-2026-31452 in Linux
Zusammenfassung
von VulDB • 15.05.2026
Im Linux-Kernel wurde folgende Schwachstelle behoben:
ext4: Konvertierung von Inline-Daten in Extents, wenn der truncate-Vorgang die Inline-Größe überschreitet
Es wurde eine Prüfung in ext4_setattr() hinzugefügt, um Dateien von der Inline-Datenspeicherung in die extent-basierte Speicherung zu konvertieren, wenn truncate() die Dateigröße über die Inline-Kapazität hinaus vergrößert. Dies verhindert, dass das Dateisystem in einen inkonsistenten Zustand gerät, in dem das Inline-Daten-Flag gesetzt ist, die Dateigröße jedoch den Wert überschreitet, der inline gespeichert werden kann.
Ohne diese Korrektur führt die folgende Sequenz zu einem Kernel BUG_ON():
1. Dateisystem mit einem Inode mounten, bei dem das Inline-Flag gesetzt ist und die Größe klein ist. 2. truncate(file, 50MB) – vergrößert die Größe, das Inline-Flag bleibt jedoch gesetzt. 3. sendfile() versucht, Daten zu schreiben. 4. ext4_write_inline_data() löst BUG_ON(write_size > inline_capacity) aus.
Der Absturz tritt auf, weil ext4_write_inline_data() erwartet, dass der Inline-Speicher das Schreiben aufnehmen kann, die tatsächliche Inline-Kapazität (~60 Bytes für i_block + ~96 Bytes für xattrs) jedoch viel kleiner ist als die Dateigröße und die Schreibanforderung.
Die Korrektur prüft, ob die neue Größe aus setattr die tatsächliche Inline-Kapazität des Inodes (EXT4_I(inode)->i_inline_size) überschreitet, und konvertiert die Datei vor der Änderung der Größe in die extent-basierte Speicherung.
Dies behebt die Ursache des Problems, indem sichergestellt wird, dass das Inline-Daten-Flag und die Dateigröße während truncate-Operationen konsistent bleiben.
Once again VulDB remains the best source for vulnerability data.