CVE-2026-89971
Təsvir
Linux kernel-də aşağıdakı zəiflik aradan qaldırılıb: nvme: zona məlumatı sorğusu uğursuz olduqda zonalaşdırılmış limitlərin yenilənməsini ötürün nvme_query_zone_info() ya mənfi errno, ya da müsbət NVMe status kodu qaytarır, lakin nvme_update_ns_info_block() yalnız mənfi halı yoxlayır: ret = nvme_query_zone_info(ns, lbaf, &zi); if (ret < 0) goto out; Əgər cihaz Identify Namespace (I/O Command Set spesifik) əmrini və ya nvme_set_max_append() tərəfindən göndərilən Identify Controller əmrini yerinə yetirə bilmirsə, müsbət status nəzərə alınmadan keçilir və quraşdırma sıfırlanmış zona məlumatları ilə davam edir. Daha sonra nvme_update_zone_info() növbəni chunk_sectors və ns->head->zsze sıfır olmaqla zonalaşdırılmış kimi qeyd edir. blk_validate_zoned_limits() funksiyası chunk_sectors dəyərini yoxlamadığı üçün limitlərin təsdiqlənməsi uğurlu olur. blk_revalidate_disk_zones() sıfır zona ölçüsünü rədd etsə də, həmin vaxta qədər limitlər artıq aktiv olur və onları geri qaytaran heç bir mexanizm yoxdur. Nəticədə, sıfır zona ölçüsü olan zonalaşdırılmış növbəyə I/O göndərilməyə davam edir və disk_zone_no() ilog2(0) qədər sürüşdürülür: nvme0n1: Invalid non power of two zone size (0) UBSAN: shift-out-of-bounds in include/linux/blkdev.h:747:16 shift exponent -1 is negative disk_zone_no include/linux/blkdev.h:747 [inline] bio_straddles_zones include/linux/blkdev.h:1058 [inline] blk_zone_wplug_handle_write block/blk-zoned.c:1423 [inline] blk_zone_plug_bio.cold+0x25/0x1c8 block/blk-zoned.c:1605 blk_mq_submit_bio+0x18fb/0x2870 block/blk-mq.c:3196 submit_bh_wbc+0x575/0x740 fs/buffer.c:2824 __block_write_full_folio+0x728/0xdd0 fs/buffer.c:1933 Bu əmri yerinə yetirə bilməyən hər hansı cihaz, proqram təminatı (firmware) və ya NVMe-oF hədəfi bu vəziyyətə düşür. Belə hallarda zonalaşdırılmış limitlərin yenilənməsini ötürün və baş verən iki hadisədən hansının olduğunu loqlayın: yenidən təsdiqləmə zamanı növbə sonuncu dəfə təsdiqləndiyi zona həndəsəsini saxlayır, ilk skan zamanı isə name space zonalaşdırılmış limitlər olmadan qeydiyyata alınır ki, beləliklə o, inzibatçı əmrləri üçün hələ də mövcud olsun. nvme_query_zone_info() daxilində müsbət status qaytaran yolların heç biri heç nəyi loqlamadığı üçün, əks halda xəta səssiz şəkildə baş verərdi. zi.zone_size dəqiq göstəricidir: müsbət status qaytaran hər bir yol, dəyər təyin edilməmişdən əvvəl geri dönür və bundan sonra yeganə qalan xəta -ENODEV-dir ki, bu da çağırıcı tərəfindən artıq idarə olunur. FuzzNvme tərəfindən aşkar edilmişdir.
Necə düzəltmək olar
- Linux Linuxa75258e651d91ec25424cd94d824d192c11ccc24, 7fad53ae2052a2b4fc7ca567d6555bdb1176ba35, bb6dafa79040357cf5043836e1db108c2af8b1e1, 3838e80fcfb32e62baffb63c6dc0a60153665a4d və ya daha yeni versiya
Təsirlənən məhsullar
| Məhsul | Təsirlənən versiyalar | Düzəldildiyi versiya |
|---|---|---|
| Linux Linux | c85c9ab926a592e2f59f7d9a6ca7d6562843d8fa ≤ v < a75258e651d91ec25424cd94d824d192c11ccc24, c85c9ab926a592e2f59f7d9a6ca7d6562843d8fa ≤ v < 7fad53ae2052a2b4fc7ca567d6555bdb1176ba35, c85c9ab926a592e2f59f7d9a6ca7d6562843d8fa ≤ v < bb6dafa79040357cf5043836e1db108c2af8b1e1, c85c9ab926a592e2f59f7d9a6ca7d6562843d8fa ≤ v < 3838e80fcfb32e62baffb63c6dc0a60153665a4d, 6.9 | a75258e651d91ec25424cd94d824d192c11ccc24, 7fad53ae2052a2b4fc7ca567d6555bdb1176ba35, bb6dafa79040357cf5043836e1db108c2af8b1e1, 3838e80fcfb32e62baffb63c6dc0a60153665a4d |
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.