CVE-2025-40025

Yüksek

Açıklama

Linux çekirdeğinde aşağıdaki güvenlik açığı giderilmiştir: f2fs: inode olmayan dnode için node footer üzerinde sağlamlık denetimi yapılması düzeltildi syzbot tarafından aşağıdaki gibi bildirildiği üzere: ------------[ cut here ]------------ kernel BUG at fs/f2fs/file.c:1243! Oops: invalid opcode: 0000 [#1] SMP KASAN NOPTI CPU: 0 UID: 0 PID: 5354 Comm: syz.0.0 Not tainted 6.17.0-rc1-syzkaller-00211-g90d970cade8e #0 PREEMPT(full) RIP: 0010:f2fs_truncate_hole+0x69e/0x6c0 fs/f2fs/file.c:1243 Call Trace: <TASK> f2fs_punch_hole+0x2db/0x330 fs/f2fs/file.c:1306 f2fs_fallocate+0x546/0x990 fs/f2fs/file.c:2018 vfs_fallocate+0x666/0x7e0 fs/open.c:342 ksys_fallocate fs/open.c:366 [inline] __do_sys_fallocate fs/open.c:371 [inline] __se_sys_fallocate fs/open.c:369 [inline] __x64_sys_fallocate+0xc0/0x110 fs/open.c:369 do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline] do_syscall_64+0xfa/0x3b0 arch/x86/entry/syscall_64.c:94 entry_SYSCALL_64_after_hwframe+0x77/0x7f RIP: 0033:0x7f1e65f8ebe9 Bulandırılmış bir imajla, f2fs_truncate_hole() içinde doğrudan node'daki tutarsız kesme aralığını algıladığı için f2fs panik yaşayabilir. Kök neden şudur: inode olmayan bir dnode, aynı footer.ino ve footer.nid değerlerine sahip olabilir, bu nedenle dnode bir inode olarak ayrıştırılır, ardından ADDRS_PER_PAGE() yanlış blkaddr sayısı döndürebilir; bu genellikle 923 olabilir ve tesadüfen dn.ofs_in_node 923'e eşit olur, ardından aşağıdaki ifadede count 0 olarak hesaplanabilir ve daha sonra f2fs_bug_on(, count == 0 || ...) ile panik tetiklenir. count = min(end_offset - dn.ofs_in_node, pg_end - pg_start); Bu yama, yeni bir node_type NODE_TYPE_NON_INODE türünü tanıtır ve ardından f2fs_get_node_folio() içindeki sanity_check_node_footer'a yeni türün geçirilmesine izin vererek, inode olmayan bir dnode'un aynı footer.ino ve footer.nid değerlerine sahip olması bozulmasını algılar. Yeniden üretme betikleri: mkfs.f2fs -f /dev/vdb mount /dev/vdb /mnt/f2fs touch /mnt/f2fs/foo touch /mnt/f2fs/bar dd if=/dev/zero of=/mnt/f2fs/foo bs=1M count=8 umount /mnt/f2fs inject.f2fs --node --mb i_nid --nid 4 --idx 0 --val 5 /dev/vdb mount /dev/vdb /mnt/f2fs xfs_io /mnt/f2fs/foo -c "fpunch 6984k 4k"

ÖnemYüksek
CVSS7.8
İstismar olasılığı—
ÜrünLinux
Yayın28 Eki 2025
İlk görülme28 Eki 2025

Nasıl düzeltilir

Güncelleyin
  • Linux Linux186098f34b8a5d65eb828f952c8cc56272c60ea0, c18ecd99e0c707ef8f83cace861cbc3162f4fdf1 ya da sonraki bir sürüm

Etkilenen ürünler

ÜrünEtkilenen sürümlerDüzeltildiği sürüm
Linux Linux98e4da8ca301e062d79ae168c67e56f3c3de3ce4 ≤ v < 186098f34b8a5d65eb828f952c8cc56272c60ea0, 98e4da8ca301e062d79ae168c67e56f3c3de3ce4 ≤ v < c18ecd99e0c707ef8f83cace861cbc3162f4fdf1, 3.8186098f34b8a5d65eb828f952c8cc56272c60ea0, c18ecd99e0c707ef8f83cace861cbc3162f4fdf1

Sürümünüzü kontrol edin

Ürünü seçin ve kullandığınız sürümü yazın; sürümün etkilenen aralıkta olup olmadığını görün.

Intelligence 360 paketinde

Attack Surface Management

Alan adlarınıza bağlı varlıkları, bu varlıklarda çalışan teknolojileri ve bilinen zafiyetleri tek listede görün.