CVE-2026-23194
Təsvir
Linux nüvəsində aşağıdakı zəiflik aradan qaldırılıb: rust_binder: sıfır uzunluqlu FDA obyektlərinin düzgün idarə edilməsi Uzunluğu 0 fd olan boş FDA (fd massivi) obyektinin sərhədlərdən kənar (out-of-bounds) xətasına səbəb olduğu xəta düzəldildi. Əvvəlki tətbiqdə `skip == 0` ifadəsi "bu bir göstərici düzəlişidir (pointer fixup)" mənasına gəlirdi, lakin 0 həmçinin boş FDA üçün düzgün ötürmə (skip) uzunluğudur. Əgər FDA buferin sonunda yerləşirsə, bu, sərhədlərdən kənara 8 bayt yazmaq cəhətinə səbəb olur. Bu hal aşkar edilir və istifadəçi sahəsinə (userspace) EINVAL xətası qaytarılır. `skip == 0` ifadəsinin xüsusi dəyər kimi istifadə edilməsi modeli Binder-in C tətbiqindən qaynaqlanır. Bu xətanın aradan qaldırılması çərçivəsində həmin model Rust enum ilə əvəz edildi. Uzunluq sıfır olduqda düzəlişi (fixup) göndərməmək alternativ variantını nəzərdən keçirdim, lakin "sıfır-xüsusidir" məntiqini tamamilə ləğv etməyin daha optimal olduğunu düşünürəm. Bu xətanın kök səbəbi ilk cəhddə Gemini CLI tərəfindən diaqnoz edildi. Mən aşağıdakı sorğunu istifadə etdim: > @drivers/android/binder/thread.rs faylında 316 304 316 324 ilə Fixups oob xətasının tetikləndiyi bir xəta var görünür. Bu o deməkdir ki, biz hansısa şəkildə elə bir düzəlişlə qarşılaşdıq ki, burada A buferi B buferinə göstəriciyə malikdir, lakin göstərici A buferində sərhədlərdən kənar indeksdə yerləşir. Zəhmət olmasa, xətanı tapmaq üçün kodu araşdırın. Bunu düzgün tətbiq edən @drivers/android/binder.c ilə müqayisə edə bilərsiniz.
Necə düzəltmək olar
- linux linux_kernel6.18.10 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 | 6.18 ≤ v < 6.18.10, 6.19 | 6.18.10 |
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.