CVE-2026-89665
Açıklama
Linux kernel'de aşağıdaki güvenlik açığı giderilmiştir: nfsd: NFSv2 SETATTR/CREATE işlemlerinde kapsam dışı useconds değerlerini reddet NFSv2 sattr çözücü, svcxdr_decode_sattr() fonksiyonunda ağ üzerinden gelen useconds değerini nanosaniyeye dönüştürür: iap->ia_atime.tv_nsec = tmp2 * NSEC_PER_USEC; tmp2 bir u32 ve NSEC_PER_USEC 1000 olduğundan, çarpım unsigned long olarak hesaplanır. ILP32 üzerinde bu 32 bittir ve 4294968 gibi kapsam dışı bir useconds değeri tv_nsec == 704 şeklinde döner. Bu nedenle bozulma, herhangi bir proc fonksiyonu değeri incelemeden önce çözümleme sırasında gerçekleşir ve daha sonra yapılacak bir tv_nsec aralık kontrolü sonucu kapsam içinde görerek kabul eder. Çözücüde reddetmek bir RPC GARBAGE_ARGS yanıtı üretir. NFSv2, NFSERR_INVAL tanımlamadığından, hatalı biçimlendirilmiş bir zaman argümanı için döndürülebilecek NFS düzeyinde bir durum yoktur ve kontrol, v3/v4 nsec aralık kontrollerinde olduğu gibi proc fonksiyonuna taşınamaz. Çarpma işleminden önce ham useconds değerini korumaya alın ve 1000000'den büyük değerleri reddedin. useconds == 1000000 korunmuştur: bu, "güncel sunucu zamanına ayarla" şeklindeki Sun konvansiyonudur ve ağaç içi Linux NFSv2 istemcisi, düz bir touch / utimes(file, NULL) işlemi için hem atime hem de mtime alanında bunu yayınlar (bkz. fs/nfs/nfs2xdr.c içindeki encode_sattr() ve xdr_encode_current_server_time()). 1000000 değerinin reddedilmesi, bu yaygın işlemi hem SETATTR hem de CREATE için ciddi bir çözümleme hatasına dönüştürürdü. 1000000 * NSEC_PER_USEC değeri 10^9'dur ve ILP32 üzerinde dönmez, dolayısıyla Sun konvansiyon değeri güvenli bir şekilde geçer. Yalnızca gerçek anlamda kapsam dışı olan değerler (> 1000000) reddedilir. Bu nedenle atime ve mtime korumaları simetriktir. Çözücü, Sun konvansiyonunu yalnızca mtime bloğunda uygulamaktaydı ve mtime useconds == 1000000 olduğunda ATTR_ATIME_SET|ATTR_MTIME_SET değerlerini temizliyordu. Eğer bir istemci atime alanına 1000000 koyar ancak mtime alanına koymazsa, atime bloğu kapsam dışı bir tv_nsec (10^9) depolar ve ATTR_ATIME_SET değerini ayarlı bırakırdı, böylece hatalı değer dosya sistemine ulaşırdı. Konvansiyonu atime bloğuna da uygulayın ve sunucunun güncel zamanını kullanıp değeri görmezden gelmesi için ATTR_ATIME_SET değerini temizleyin. Orada yalnızca ATTR_ATIME_SET temizlenir. mtime bloğu, 1000000'in "hem atime hem de mtime değerlerini şu ana ayarla" anlamına geldiği mevcut davranışını sürdürür. [ cel: çeşitli düzenlemeler, eklemeler ve temizlikler ]
Nasıl düzeltilir
- Linux Linuxcdc3299f7072777b09c9582a3b8b65bb163ddcf3, 09a79d9ab35a39603c834e8f6333603292f9c816, 5296a2442d12d45d6eea7b4d3ec3ffecc1821cac, 1db456ffc22e045f49f7b9e62415a26b3f33f200, a937dd1aa2d92291fe0a1860d17e90d8f206cd22, ad02d095439f89cbd6629420c7e3ba476457b83b, 1195483965a5f63d2dde18054ec7e50a23b9071c, 26709c8ffe73772eb69e68d553ac71d91228dccc ya da sonraki bir sürüm
Etkilenen ürünler
| Ürün | Etkilenen sürümler | Düzeltildiği sürüm |
|---|---|---|
| Linux Linux | 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 ≤ v < cdc3299f7072777b09c9582a3b8b65bb163ddcf3, 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 ≤ v < 09a79d9ab35a39603c834e8f6333603292f9c816, 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 ≤ v < 5296a2442d12d45d6eea7b4d3ec3ffecc1821cac, 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 ≤ v < 1db456ffc22e045f49f7b9e62415a26b3f33f200, 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 ≤ v < a937dd1aa2d92291fe0a1860d17e90d8f206cd22, 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 ≤ v < ad02d095439f89cbd6629420c7e3ba476457b83b, 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 ≤ v < 1195483965a5f63d2dde18054ec7e50a23b9071c, 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 ≤ v < 26709c8ffe73772eb69e68d553ac71d91228dccc, 2.6.12 | cdc3299f7072777b09c9582a3b8b65bb163ddcf3, 09a79d9ab35a39603c834e8f6333603292f9c816, 5296a2442d12d45d6eea7b4d3ec3ffecc1821cac, 1db456ffc22e045f49f7b9e62415a26b3f33f200, a937dd1aa2d92291fe0a1860d17e90d8f206cd22, ad02d095439f89cbd6629420c7e3ba476457b83b, 1195483965a5f63d2dde18054ec7e50a23b9071c, 26709c8ffe73772eb69e68d553ac71d91228dccc |
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.