CVE-2025-37739

Yüksək

Təsvir

Linux kernel-də aşağıdakı zəiflik aradan qaldırılıb: f2fs: f2fs_truncate_inode_blocks() funksiyasında sərhədləri aşan girişin (out-of-bounds access) qarşısını almaq üçün düzəliş syzbot aşağıdakı kimi UBSAN problemini bildirir: ------------[ cut here ]------------ UBSAN: array-index-out-of-bounds in fs/f2fs/node.h:381:10 index 18446744073709550692 is out of range for type '__le32[5]' (aka 'unsigned int[5]') CPU: 0 UID: 0 PID: 5318 Comm: syz.0.0 Not tainted 6.14.0-rc3-syzkaller-00060-g6537cfb395f3 #0 Call Trace: <TASK> __dump_stack lib/dump_stack.c:94 [inline] dump_stack_lvl+0x241/0x360 lib/dump_stack.c:120 ubsan_epilogue lib/ubsan.c:231 [inline] __ubsan_handle_out_of_bounds+0x121/0x150 lib/ubsan.c:429 get_nid fs/f2fs/node.h:381 [inline] f2fs_truncate_inode_blocks+0xa5e/0xf60 fs/f2fs/node.c:1181 f2fs_do_truncate_blocks+0x782/0x1030 fs/f2fs/file.c:808 f2fs_truncate_blocks+0x10d/0x300 fs/f2fs/file.c:836 f2fs_truncate+0x417/0x720 fs/f2fs/file.c:886 f2fs_file_write_iter+0x1bdb/0x2550 fs/f2fs/file.c:5093 aio_write+0x56b/0x7c0 fs/aio.c:1633 io_submit_one+0x8a7/0x18a0 fs/aio.c:2052 __do_sys_io_submit fs/aio.c:2111 [inline] __se_sys_io_submit+0x171/0x2e0 fs/aio.c:2081 do_syscall_x64 arch/x86/entry/common.c:52 [inline] do_syscall_64+0xf3/0x230 arch/x86/entry/common.c:83 entry_SYSCALL_64_after_hwframe+0x77/0x7f RIP: 0033:0x7f238798cde9 index 18446744073709550692 (decimal, unsigned long long) = 0xfffffffffffffc64 (hexadecimal, unsigned long long) = -924 (decimal, long long) f2fs_truncate_inode_blocks() funksiyasında UBSAN müəyyən edir ki, get_nid() funksiyası .i_nid[-924] elementinə müraciət etməyə çalışır, bu o deməkdir ki, həm offset[0], həm də level sıfır olmalıdır. Ehtimal olunan hal f2fs_do_truncate_blocks() funksiyasında baş verir: biz inode ölçüsünü sıfıra endirməyə çalışırıq, lakin dn.ofs_in_node sıfırdır və dn.node_page bir inode səhifəsi deyil, buna görə də inode səhifəsinin kəsilməsi uğursuz olur və sonra sıfırlanmış free_from parametri f2fs_truncate_inode_blocks() funksiyasına ötürülərək bu problemə səbəb olur. if (dn.ofs_in_node || IS_INODE(dn.node_page)) { f2fs_truncate_data_blocks_range(&dn, count); free_from += count; } Təxminimcə, dn.node_page-in inode səhifəsi olmamasının səbəbi budur: eyni node blok ünvanını paylaşan çoxlu nat qeydləri var və node blok ünvanı yenidən istifadə edildikdə, f2fs_get_node_page() inode olmayan bloku yükləyə bilər. Sərhədləri aşan giriş probleminin qarşısını almaq üçün belə şərtlər üçün yoxlama (sanity check) əlavə edək.

CiddilikYüksək
CVSS7.1
İstismar ehtimalı—
MəhsulLinux Kernel
Dərc1 may 2025
İlk görülmə1 may 2025

Necə düzəltmək olar

Yeniləyin
  • linux linux_kernel5.10.237, 5.15.181, 6.1.135, 6.6.88, 6.12.24, 6.13.12, 6.14.3 və ya daha yeni versiya

Təsirlənən məhsullar

MəhsulTəsirlənən versiyalarDüzəldildiyi versiya
linux linux_kernel3.8 ≤ v < 5.10.237, 5.11 ≤ v < 5.15.181, 5.16 ≤ v < 6.1.135, 6.2 ≤ v < 6.6.88, 6.7 ≤ v < 6.12.24, 6.13 ≤ v < 6.13.12, 6.14 ≤ v < 6.14.35.10.237, 5.15.181, 6.1.135, 6.6.88, 6.12.24, 6.13.12, 6.14.3
debian debian_linux11.0—

Versiyanızı yoxlayın

Məhsulu seçin və istifadə etdiyiniz versiyanı yazın; versiyanın təsirlənən aralıqda olub-olmadığını görün.

Intelligence 360 paketində

Attack Surface Management

Domenlərinizə bağlı aktivləri, onlarda işləyən texnologiyaları və məlum zəiflikləri bir siyahıda görün.