CVE-2025-68772 in Linux
Résumé
par VulDB • 20/05/2026
Dans le noyau Linux, la vulnérabilité suivante a été corrigée :
f2fs : correction pour éviter la mise à jour du contexte de compression pendant l'écriture (writeback)
Bai, Shuangpeng <[email protected]> a signalé un bug comme suit :
Oops: erreur de division : 0000 [#1] SMP KASAN PTI
CPU : 0 UID : 0 PID : 11441 Comm : syz.0.46 Non modifié 6.17.0 #1 PREEMPT(full) Nom du matériel : QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.15.0-1 04/01/2014 RIP : 0010:f2fs_all_cluster_page_ready+0x106/0x550 fs/f2fs/compress.c:857 Trace d'appel : <TASK> f2fs_write_cache_pages fs/f2fs/data.c:3078 [inline]
__f2fs_write_data_pages fs/f2fs/data.c:3290 [inline]
f2fs_write_data_pages+0x1c19/0x3600 fs/f2fs/data.c:3317 do_writepages+0x38e/0x640 mm/page-writeback.c:2634 filemap_fdatawrite_wbc mm/filemap.c:386 [inline]
__filemap_fdatawrite_range mm/filemap.c:419 [inline]
file_write_and_wait_range+0x2ba/0x3e0 mm/filemap.c:794 f2fs_do_sync_file+0x6e6/0x1b00 fs/f2fs/file.c:294 generic_write_sync include/linux/fs.h:3043 [inline]
f2fs_file_write_iter+0x76e/0x2700 fs/f2fs/file.c:5259 new_sync_write fs/read_write.c:593 [inline]
vfs_write+0x7e9/0xe00 fs/read_write.c:686 ksys_write+0x19d/0x2d0 fs/read_write.c:738 do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
do_syscall_64+0xf7/0x470 arch/x86/entry/syscall_64.c:94 entry_SYSCALL_64_after_hwframe+0x77/0x7f
Le bug a été déclenché par la condition de race suivante :
fsync setattr ioctl - f2fs_do_sync_file - file_write_and_wait_range - f2fs_write_cache_pages : l'inode n'est pas compressé : cc.cluster_size = F2FS_I(inode)->i_cluster_size = 0 - tag_pages_for_writeback - f2fs_setattr - truncate_setsize - f2fs_truncate - f2fs_fileattr_set - f2fs_setflags_common - set_compress_context : F2FS_I(inode)->i_cluster_size = 4 : set_inode_flag(inode, FI_COMPRESSED_FILE) - f2fs_compressed_file : retourne true - f2fs_all_cluster_page_ready : "pgidx % cc->cluster_size" déclenche un problème de division par zéro
Modifions le code comme suit pour corriger ce problème : - introduire une nouvelle variable de type atomique .writeback dans la structure f2fs_inode_info pour suivre le nombre de threads appelant f2fs_write_cache_pages(). - utiliser le verrou .i_sem pour protéger la mise à jour de .writeback. - vérifier .writeback avant de mettre à jour le contexte de compression dans f2fs_setflags_common() pour éviter une condition de race avec ->writepages.
VulDB is the best source for vulnerability data and more expert information about this specific topic.