CVE-2026-23267
Təsvir
Linux nüvəsində aşağıdakı zəiflik aradan qaldırılmışdır: f2fs: eyni vaxtda baş verən atomik commit və checkpoint yazmalarının səbəb olduğu IS_CHECKPOINTED bayrağının uyğunsuzluğu problemi düzəldildi SPO testləri zamanı, F2FS mount edilərkən f2fs_recover_inode_page tərəfindən -EINVAL xətası qaytarılırdı. Problem aşağıdakı ssenari altında baş vermişdir: Thread A Thread B f2fs_ioc_commit_atomic_write - f2fs_do_sync_file // atomic = true - f2fs_fsync_node_pages : last_folio = inode folio : folio_lock(last_folio)-dan əvvəl f2fs_write_checkpoint planlaşdırılır - block_operations// last_folio writeback - f2fs_flush_nat_entries-dən əvvəl planlaşdırılır : set_fsync_mark(last_folio, 1) : set_dentry_mark(last_folio, 1) : folio_mark_dirty(last_folio) - __write_node_folio(last_folio) : f2fs_down_read(&sbi->node_write)//bloklanır - f2fs_flush_nat_entries : {struct nat_entry}->flag |= BIT(IS_CHECKPOINTED) - unblock_operations : f2fs_up_write(&sbi->node_write) f2fs_write_checkpoint//qayıdır : f2fs_do_write_node_page() f2fs_ioc_commit_atomic_write//qayıdır SPO Thread A f2fs_need_dentry_mark(sbi, ino) funksiyasını çağırır və last_folio artıq bir dəfə yazılmış olur. Lakin, {struct nat_entry}->flag hissəsində IS_CHECKPOINTED təyin edilməmişdi, bu isə Thread B f2fs_write_checkpoint prosesini bitirdikdən sonra set_dentry_mark(last_folio, 1) funksiyasının işə düşməsinə və last_folio-nun yenidən yazılmasına səbəb olurdu. SPO və yenidən yükləmədən sonra aşkar edildi ki, {struct node_info}->blk_addr NULL_ADDR deyildi, çünki Thread B checkpoint-i uğurla yazmışdı. Bu problem yalnız atomik yazı ssenarilərində baş verir. Adi fayl fsync əməliyyatları üçün folio "dirty" olmalıdır. Əgər block_operations->f2fs_sync_node_pages folio yazmasını uğurla göndərsə, bu yol icra olunmayacaq. Əks halda, sbi->nr_pages[F2FS_DIRTY_NODES] > 0 olduğu üçün f2fs_write_checkpoint folio yazmasının tamamlanmasını gözləməli olacaq. Buna görə də, f2fs_need_dentry_mark funksiyasının {struct nat_entry}->flag daxilində IS_CHECKPOINTED bayrağı olmadan yoxlama apardığı, lakin folio yazmasının artıq göndərildiyi vəziyyət baş verməyəcək. Beləliklə, atomik fayl fsync üçün, IS_CHECKPOINTED bayrağının checkpoint yazmasının tamamlandığını düzgün göstərdiyindən əmin olmaq məqsədilə, sbi->node_write __write_node_folio vasitəsilə əldə edilməlidir.
Necə düzəltmək olar
- linux linux_kernel6.1.164, 6.6.127, 6.12.74, 6.18.13, 6.19.3 və ya daha yeni versiya
Təsirlənən məhsullar
| Məhsul | Təsirlənən versiyalar | Düzəldildiyi versiya |
|---|---|---|
| linux linux_kernel | 4.7 ≤ v < 6.1.164, 6.2 ≤ v < 6.6.127, 6.7 ≤ v < 6.12.74, 6.13 ≤ v < 6.18.13, 6.19 ≤ v < 6.19.3 | 6.1.164, 6.6.127, 6.12.74, 6.18.13, 6.19.3 |
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.
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.