CVE-2026-92502 in Linuxinfo

Zusammenfassung

von VulDB • 17.09.2026

Im Linux-Kernel wurde folgende Schwachstelle behoben:

ext4: Veraltete xarray-Tags auf Folios löschen, die während des Writeback übersprungen wurden

Im Modus data=journal kann der Writeback-Thread den Aufruf WARN_ON_ONCE(sb_rdonly(sb)) in ext4_journal_check_start() auslösen, während das Superblock-Gerät beim Neustart schreibgeschützt neu eingehängt wird:

Workqueue: writeback wb_workfn (flush-253:0) RIP: 0010:ext4_journal_check_start+0x8b/0xd0 Call Trace: __ext4_journal_start_sb+0x3c/0x1e0 mpage_prepare_extent_to_map+0x4af/0x580 ext4_do_writepages+0x3c0/0x1080 ext4_writepages+0xc8/0x1a0 do_writepages+0xc4/0x180 __writeback_single_inode+0x45/0x2f0 writeback_sb_inodes+0x26b/0x5d0 __writeback_inodes_wb+0x54/0x100 wb_writeback+0x1ac/0x320 wb_workfn+0x394/0x470

Und gefolgt von der Warnung: EXT4-fs warning (device vda1): ext4_evict_inode:195: inode #6263: comm (sd-umount): data will be lost

Dieses Problem tritt nicht bei jedem Durchlauf auf, ist aber häufig reproduzierbar. Der Reproduktionsschritt besteht darin, eine VM mit 8 CPUs und 16 GB Speicher zu erstellen und data=journal einzurichten: sudo tune2fs -o journal_data /dev/vda1 fio ausführen: rm -f fiotest fio --name=fiotest --rw=randwrite --bs=4k --runtime=6 --ioengine=libaio --iodepth=256 --numjobs=8 --filename=fiotest --filesize=30G --group_reporting Die VM neu starten und die Konsolenausgabe von prüfen: virsh console testvm

Es gibt jedoch keine schmutzigen Inodes; folio_clear_dirty_for_io löscht PG_dirty, lässt aber PAGECACHE_TAG_DIRTY und PAGECACHE_TAG_TOWRITE gesetzt, welche nur durch __folio_start_writeback gelöscht werden. Im Modus data=journal speichert jbd2 die journaled-Daten an ihren endgültigen Speicherort und löscht sein eigenes Dirty-Flag, ohne PG_dirty oder xarray-Dirty-Flags der Folios zu berühren. Der Commit f4a2b42e7891 ("ext4: fix stale xarray tags after writeback") behebt den Fall, in dem PG_dirty noch gesetzt ist, es aber keine schmutzigen Seiten gibt. Ein weiterer Fall liegt vor, wenn PG_dirty gelöscht wurde, PAGECACHE_TAG_DIRTY und PAGECACHE_TAG_TOWRITE jedoch weiterhin gesetzt sind. In diesem Fall überprüft der Writeback-Thread die sauberen Folios und überspringt sie in mpage_prepare_extent_to_map: if (!folio_test_dirty(folio) || ... folio_unlcok(folio); continue

Und erreicht niemals ext4_bio_write_folio, wo der Commit f4a2b42e7891 die veralteten xarray-Tags löscht. Nach dem schreibgeschützten Neu-Einhängen des Dateisystems werden Debug-Logs ausgegeben: writepages RDONLY nrpages=2048 dirtytag=1 wbtag=0 towrite=1 sync=0 Und alle Folios sind tatsächlich sauber: folio idx=3 dirty=0 wb=0 checked=0 dirtybuf=0 jbddirty=0 mapped=1 ...

Wir müssen die veralteten xarray-Tags für solche sauberen Folios löschen, indem wir sie im Übersprungpfad durch den Writeback-Prozess leiten, genau wie es f4a2b42e7891 in ext4_bio_write_folio tut.

Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.

Zuständig

Linux

Reservieren

16.09.2026

Veröffentlichung

17.09.2026

Moderieren

akzeptiert

Eintrag

VDB-406999

CPE

bereit

EPSS

0.00000

KEV

nein

Aktivitäten

low

Quellen

Do you need the next level of professionalism?

Upgrade your account now!