CVE-2026-31712
Təsvir
Linux kernel-də aşağıdakı zəiflik aradan qaldırılıb: ksmbd: smb_check_perm_dacl() funksiyasında minimum ACE ölçüsü tələb edilsin smb_check_perm_dacl() funksiyasındakı hər iki ACE dövrü yalnız qalan buferin kiçik olması halına qarşı qoruma təmin edir, lakin bəyan edilmiş `ace->size` dəyəri təsvir etdiyi strukturdan kiçik olan ACE-lərə qarşı qoruma təmin etmir: if (offsetof(struct smb_ace, access_req) > aces_size) break; ace_size = le16_to_cpu(ace->size); if (ace_size > aces_size) break; Birinci yoxlama yalnız 4 baytlıq ACE başlığının sərhədlər daxilində olmasını tələb edir; o, access_req-in (offset 4-də 4 bayt) oxuna bilməsini tələb etmir. Sahibi olduğu faylda xüsusi hazırlanmış DACL təyin etmiş hücumçu, aces_size == 4 olduqda ace->size == 4 bəyan edərək hər iki yoxlamadan keçə bilər və daha sonra: granted |= le32_to_cpu(ace->access_req); /* üst dövr */ compare_sids(&sid, &ace->sid); /* alt dövr */ offset 4-də access_req-i (4 bayta qədər OOB) və offset 8-də ace->sid-i (CIFS_SID_BASE_SIZE + SID_MAX_SUB_AUTHORITIES * 4 bayta qədər OOB) oxuyur. Hər iki dövrü aşağıdakını tələb edəcək şəkildə məhdudlaşdırın: ace_size >= offsetof(struct smb_ace, sid) + CIFS_SID_BASE_SIZE Bu, şəbəkə üzərindən ötürülən ən kiçik valid ACE düzümü vədir (4 baytlıq başlıq + 4 baytlıq access_req + sıfır sub-auth ilə 8 baytlıq sid bazası). Həmçinin, compare_sids() funksiyası sub_auth[] elementlərini dereference etməzdən əvvəl sid.num_subauth dəyəri SID_MAX_SUB_AUTHORITIES limitini aşan ACE-ləri rədd edin. parse_sec_desc() artıq ekvivalent bir yoxlamanı tətbiq edir (sətirlər 441-448); smb_check_perm_dacl() zamanla sadəcə daha zəif validasiya tətbiq etməyə başlamışdı. Əlçatanlıq: Fayl üzərində ACL təyin etmək icazəsi olan autentifikasiya olunmuş SMB kliyenti. Həmin fayla qarşı növbəti CREATE sorğusu zamanı kernel, smb_check_perm_dacl() vasitəsilə saxlanılan DACL-i analiz edir və OOB oxunu tetiklir. Bu, pre-auth zəifliyi deyil və OOB oxu hücumçuya geri qaytarılmır, lakin KASAN hesabatları və kernel vəziyyətinin korlanması mümkündür.
Necə düzəltmək olar
- linux linux_kernel6.12.84, 6.18.25, 7.0.2 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 | 5.15 ≤ v < 6.12.84, 6.13 ≤ v < 6.18.25, 6.19 ≤ v < 7.0.2 | 6.12.84, 6.18.25, 7.0.2 |
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.