CVE-2026-31613
Açıklama
Linux çekirdeğinde aşağıdaki güvenlik açığı giderilmiştir: smb: client: sembolik bağlantı hata yanıtlarını ayrıştırırken oluşan sınır dışı (OOB) okumalar düzeltildi Bir CREATE işlemi STATUS_STOPPED_ON_SYMLINK döndürdüğünde, smb2_check_message() herhangi bir uzunluk doğrulaması yapmadan başarıyla döner ve bu durum, güvenilmeyen bir sunucuya karşı tek savunma olarak sembolik bağlantı ayrıştırıcılarını bırakır. symlink_data(), SMB 3.1.1 hata bağlamlarını "p < end" döngü testiyle gezer ancak 4. ofsette p->ErrorId'yi ve 0. ofsette p->ErrorDataLength'i okur. Sunucu tarafından kontrol edilen ErrorDataLength, p'yi end değerinin 1-7 bayt yakınına getirdiğinde, bir sonraki yineleme sınırı aşarak okuma yapar. Eşleşen bağlam bulunduğunda, sembolik bağlantı başlığının kendisinin sığdığına dair hiçbir kontrol yapılmaksızın, sym->SymLinkErrorTag p->ErrorContextData'nın 4. ofsetinden okunur. Ardından smb2_parse_symlink_response(), iov_base'den PathBuffer'ın ofseti olarak SMB2_SYMLINK_STRUCT_SIZE kullanarak ikame ismi sınırlandırır. Bu değer sizeof(smb2_err_rsp) + sizeof(smb2_symlink_err_rsp) olarak hesaplanır ki bu yalnızca ErrorContextCount == 0 olduğunda doğrudur. En az bir hata bağlamı olduğunda, sembolik bağlantı verileri 8 bayt daha derinde yer alır ve atlanan her eşleşmeyen bağlam bunu 8 + ALIGN(ErrorDataLength, 8) kadar daha kaydırır. Kontrol çok kısa olduğu için ikame isim okumasının iov_len'i aşmasına izin verir. Sınır dışındaki yığın (heap) baytları UTF-16 olarak çözümlenerek sembolik bağlantı hedefine dönüştürülür ve readlink(2) aracılığıyla kullanıcı alanına döndürülür. Döngü testlerinin tam bağlam başlığının sığmasını gerektirmesi sağlanarak, başlığı end değerini aşan sym reddedilerek ve ikame isim sabit bir ofset yerine sym->PathBuffer'ın gerçek konumuna göre sınırlandırılarak tüm bunlar düzeltilmiştir. sub_offs ve sub_len 16 bit olduğu için, yeni büyüktür operatörü ile işaretçi matematiği burada taşma yapmayacaktır.
Nasıl düzeltilir
- linux linux_kernel6.18.24, 6.19.14, 7.0.1 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 | 6.1 ≤ v < 6.18.24, 6.19 ≤ v < 6.19.14, 7.0 ≤ v < 7.0.1 | 6.18.24, 6.19.14, 7.0.1 |
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.