CVE-2026-43046

Orta

Təsvir

Linux kernel-də aşağıdakı zəiflik aradan qaldırılmışdır: btrfs: drop_progress dəyəri sıfırdan fərqli və drop_level dəyəri sıfır olan root elementlərini rədd edin [BUG] Mount zamanı relocate prosesinin bərpası zamanı, həm merge_reloc_root(), həm də btrfs_drop_snapshot() funksiyaları qeyri-mümkün bir vəziyyətin qarşısını almaq üçün BUG_ON(level == 0) istifadə edir: root_item-də sıfırdan fərqli drop_progress ilə birlikdə sıfır drop_level, bu vəziyyət aşağıdakı kimi tetiklene bilər: ------------[ cut here ]------------ kernel BUG at fs/btrfs/relocation.c:1545! Oops: invalid opcode: 0000 [#1] SMP KASAN NOPTI CPU: 1 UID: 0 PID: 283 ... Tainted: 6.18.0+ #16 PREEMPT(voluntary) Tainted: [O]=OOT_MODULE, [E]=UNSIGNED_MODULE Hardware name: QEMU Ubuntu 24.04 PC v2, BIOS 1.16.3-debian-1.16.3-2 RIP: 0010:merge_reloc_root+0x1266/0x1650 fs/btrfs/relocation.c:1545 Code: ffff0000 00004589 d7e9acfa ffffe8a1 79bafebe 02000000 Call Trace: merge_reloc_roots+0x295/0x890 fs/btrfs/relocation.c:1861 btrfs_recover_relocation+0xd6e/0x11d0 fs/btrfs/relocation.c:4195 btrfs_start_pre_rw_mount+0xa4d/0x1810 fs/btrfs/disk-io.c:3130 open_ctree+0x5824/0x5fe0 fs/btrfs/disk-io.c:3640 btrfs_fill_super fs/btrfs/super.c:987 [inline] btrfs_get_tree_super fs/btrfs/super.c:1951 [inline] btrfs_get_tree_subvol fs/btrfs/super.c:2094 [inline] btrfs_get_tree+0x111c/0x2190 fs/btrfs/super.c:2128 vfs_get_tree+0x9a/0x370 fs/super.c:1758 fc_mount fs/namespace.c:1199 [inline] do_new_mount_fc fs/namespace.c:3642 [inline] do_new_mount fs/namespace.c:3718 [inline] path_mount+0x5b8/0x1ea0 fs/namespace.c:4028 do_mount fs/namespace.c:4041 [inline] __do_sys_mount fs/namespace.c:4229 [inline] __se_sys_mount fs/namespace.c:4206 [inline] __x64_sys_mount+0x282/0x320 fs/namespace.c:4206 ... RIP: 0033:0x7f969c9a8fde Code: 0f1f4000 48c7c2b0 fffffff7 d8648902 b8ffffff ffc3660f ---[ end trace 0000000000000000 ]--- Bu xəta, iş vaxtında btrfs metadata məlumatlarını korlayan dinamik metadata fuzzing alətimizlə 7.0.0-rc2-next-20260310 versiyasında təkrar istehsal edilə bilir. [SƏBƏB] Sıfırdan fərqli drop_progress.objectid o deməkdir ki, yarımçıq qalmış btrfs_drop_snapshot() diskdə bərpa nöqtəsi buraxmışdır və bu halda drop_level 0-dan böyük olmalıdır, çünki yoxlama nöqtəsi yalnız daxili düyün səviyyələrində saxlanılır. Kernel root elementini yazarkən bu invariant tətbiq edilsə də, root elementi diskdən oxunduqda təsdiqlənmir. Bu isə diskdəki korlanmanın drop_progress.objectid != 0 və drop_level == 0 olan etibarsız vəziyyət yaratmasına şərait yaradır. Relocation bərpası daha sonra belə bir root elementini emal etdikdə, merge_reloc_root() drop_level dəyərini oxuyur və BUG_ON(level == 0) xətasına rast gəlir. Eyni etibarsız metadata btrfs_drop_snapshot() funksiyasındakı müvafiq BUG_ON()-u da tetikleyə bilər. [HƏLL] Root elementləri diskdən oxunarkən tree-checker-də root_item invariantını təsdiqləməklə bu problem həll edilmişdir: əgər drop_progress.objectid sıfırdan fərqlidirsə, drop_level də sıfırdan fərqli olmalıdır. Belə yanlış formatlanmış metadata, merge_reloc_root() və ya btrfs_drop_snapshot() funksiyalarına çatmazdan və BUG_ON-u tetikleməzdən əvvəl -EUCLEAN ilə rədd edilir. Düzəlişdən sonra eyni korlanma tree-checker tərəfindən düzgün şəkildə rədd edilir və BUG_ON artıq tetiklenmir.

CiddilikOrta
CVSS5.5
İstismar ehtimalı—
MəhsulLinux Kernel
Dərc1 may 2026
İlk görülmə1 may 2026

Necə düzəltmək olar

Yeniləyin
  • linux linux_kernel5.15.203, 6.1.168, 6.6.134, 6.12.81, 6.18.22, 6.19.12 və ya daha yeni versiya

Təsirlənən məhsullar

MəhsulTəsirlənən versiyalarDüzəldildiyi versiya
linux linux_kernel2.6.29 ≤ v < 5.15.203, 5.16 ≤ v < 6.1.168, 6.2 ≤ v < 6.6.134, 6.7 ≤ v < 6.12.81, 6.13 ≤ v < 6.18.22, 6.19 ≤ v < 6.19.12, 7.05.15.203, 6.1.168, 6.6.134, 6.12.81, 6.18.22, 6.19.12

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.