CVE-2026-53390
Açıklama
Linux çekirdeğinde aşağıdaki güvenlik açığı giderilmiştir: ksmbd: smb_check_perm_dacl() fonksiyonundaki sınır dışı okuma hatası düzeltildi smb_check_perm_dacl() içerisindeki izin kontrolü ACE taraması, ACE başlık boyutunu doğrular ve sid.num_subauth değerini SID_MAX_SUB_AUTHORITIES ile sınırlar; ancak compare_sids() bunları referanslamadan önce ace->size değerinin gerçekten num_subauth alt yetkililerini içerecek kadar büyük olup olmadığını hiçbir zaman kontrol etmez. CIFS_SID_BASE_SIZE, sub_auth[] dizisi hariç olmak üzere SID başlığını kapsar ve offsetof(struct smb_ace, sid) ACE başlığıdır; dolayısıyla mevcut korumalar yalnızca 8 baytlık SID tabanını, yani sıfır alt yetkiliyi garanti eder. Ardından compare_sids(), i < min(local_sid->num_subauth, ace->sid.num_subauth) durumu için ace->sid.sub_auth[i] değerini okur. Yerel karşılaştırma SID'leri (sid_everyone, sid_unix_NFS_mode ve id_to_sid() sonucu) her zaman en az bir alt yetkiye sahiptir ve saldırgan, ACE revizyonu ile yetki baytlarını (bunlar sınır içi SID tabanı içindedir) kontrol edebildiği için bu SID'lerden biriyle eşleşme sağlayabilir ve sub_auth okumasını zorlayabilir. Bu nedenle, güvenlik tanımlayıcısının sonuna yerleştirilen, size == 16 ve num_subauth >= 1 olan özel olarak hazırlanmış bir ACE, pntsd tahsisatının ötesinde SID_MAX_SUB_AUTHORITIES * sizeof(__le32) bayta kadar yığın sınır dışı okumasına (heap out-of-bounds read) neden olur. Güvenlik tanımlayıcısı, ksmbd_vfs_get_sd_xattr() tarafından diskteki veriyle tam aynı boyuttaki bir ara belleğe (ndr_decode_v4_ntacl() içinde kzalloc(sd_size)) yüklenir, böylece okuma işlemi tahsis edilen alanın dışına çıkar. Hatalı tanımlayıcı, SMB2_SET_INFO aracılığıyla olduğu gibi saklanabilir (DACL, security.NTACL xattr'ye yazılmadan önce normalize edilmez) ve okuma işlemi sonraki bir SMB2_CREATE erişim kontrolünde tetiklenir; bu da durumun, ACL xattr kullanan bir paylaşımdaki kimliği doğrulanmış bir istemci tarafından erişilebilir olmasını sağlar. Kardeş ayrıştırıcılar olan parse_dacl() ve smb_inherit_dacl() içerisinde halihazırda bulunan özdeş korumalara benzer şekilde, eksik olan num_subauth-karşı-ace_size kontrolü eklendi.
Nasıl düzeltilir
- linux linux_kernel5.15.212, 6.6.144, 6.12.95, 6.18.38, 7.1.3 ya da sonraki bir sürüm
Etkilenen ürünler
| Ürün | Etkilenen sürümler | Düzeltildiği sürüm |
|---|---|---|
| linux linux_kernel | 5.15.210 ≤ v < 5.15.212, 6.6.140 ≤ v < 6.6.144, 6.12.84 ≤ v < 6.12.95, 6.18.25 ≤ v < 6.18.38, 7.0.2 ≤ v < 7.1.3, 6.1.176 | 5.15.212, 6.6.144, 6.12.95, 6.18.38, 7.1.3 |
Sürümünüzü kontrol edin
Ürünü seçin ve kullandığınız sürümü yazın; sürümün etkilenen aralıkta olup olmadığını görün.
Attack Surface Management
Alan adlarınıza bağlı varlıkları, bu varlıklarda çalışan teknolojileri ve bilinen zafiyetleri tek listede görün.