CVE-2025-68795
Açıklama
Linux kernel içerisinde aşağıdaki güvenlik açığı giderilmiştir: ethtool: İstatistik sorgusunda kullanıcı alanı tamponunun taşmasını önleme ethtool -S komutu üç ioctl çağrısı üzerinden çalışır: boyut için ETHTOOL_GSSET_INFO, isimler için ETHTOOL_GSTRINGS ve değerler için ETHTOOL_GSTATS. Bu çağrılar arasında istatistik sayısı değişirse (örneğin cihaz yeniden yapılandırması nedeniyle), kullanıcı alanının tampon tahsisi hatalı olacak ve bu durum potansiyel olarak arabellek taşmasına yol açacaktır. Sürücülerin genellikle sabit istatistik sayılarını korumaları beklenir ancak bazı sürücüler (örneğin mlx5, bnx2x, bna, ksz884x) dinamik sayaçlar kullandığından bu senaryo mümkündür. Bazı sürücüler bunu dahili olarak yönetmeye çalışmaktadır: - bnad_get_ethtool_stats(), stats.n_stats sürücünün istatistik sayısına eşit değilse işlemi erken sonlandırır. - micrel/ksz884x ayrıca stats.n_stats ötesine herhangi bir şey yazmadığından ve tamponun taşmadığından emin olur. Ancak her ikisi de zaten get_sset_count() tarafından döndürülen değerle atanan stats.n_stats değişkenini kullanır, dolayısıyla burada açıklanan sorunu çözmezler. Arabellek taşmasını önlemek için; kullanıcı alanı boyutu ile get_sset_size() arasında uyumsuzluk olması durumunda ethtool_get_strings(), ethtool_get_stats() ve ethtool_get_phy_stats() fonksiyonlarının hiçbir şey döndürmemesi sağlanmıştır. Hiçbir şeyin döndürülmediğini yansıtmak için döndürülen n_stats değeri sıfıra eşit olacaktır. Boyut değişikliğinin ne zaman tespit edildiğine bağlı olarak, üst akış (upstream) ethtool kullanılırken iki durumdan biri ortaya çıkabilir: 1. ethtool_get_strings() içinde tespit edildiğinde: # ethtool -S eth2 no stats available 2. İstatistikleri alırken tespit edildiğinde, tüm istatistikler sıfır olarak raporlanır. Her iki durumun da geçici olduğu varsayılmaktadır ve sonraki bir ethtool çağrısının başarılı olması gerekir. Taşmanın önlenmesinin yanı sıra, bu iki durum oldukça belirgindir (çıktı yok/sıfırlanmış istatistikler), ki bu durum yanlış veya kaymış istatistikler sunmaktan muhtemelen daha iyidir. "Sessiz" bir yanıt yerine hata döndürmeyi de değerlendirdim ancak bunun kullanıcı alanı uygulamaları için daha yıkıcı olacağı görülmektedir. Notlar: - Bu yama, mevcut yarış durumunu (race condition) düzelttiğini iddia etmemekte; yalnızca kullanıcı alanı tamponunun taşmamasını sağlamakta ve daha öngörülebilir bir davranış oluşturmaktadır. - Her ioctl sırasında RTNL kilidi tutulur; yarış penceresi, kilidin serbest bırakıldığı ayrı ioctl çağrıları arasında mevcuttur. - Kullanıcı alanı ethtool her zaman stats.n_stats değerini doldurur, ancak bu istatistik ioctl'lerinin bunu doldurmayabilecek diğer kullanıcı alanı uygulamalarında uygulanmış olması muhtemeldir. Eklenen kod, herhangi bir gerilemeyi (regression) önlemek için değerin sıfır olmadığını kontrol eder.
Nasıl düzeltilir
- Linux Linux3df375a1e75483b7d973c3cc2e46aa374db8428b, f9dc0f45d2cd0189ce666288a29d2cc32c2e44d5, 4afcb985355210e1688560dc47e64b94dad35d71, ca9983bc3a1189bd72f9ae449d925a66b2616326, 7bea09f60f2ad5d232e2db8f1c14e850fd3fd416, 4066b5b546293f44cd6d0e84ece6e3ee7ff27093, 7b07be1ff1cb6c49869910518650e8d0abc7d25f 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 < 3df375a1e75483b7d973c3cc2e46aa374db8428b, 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 ≤ v < f9dc0f45d2cd0189ce666288a29d2cc32c2e44d5, 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 ≤ v < 4afcb985355210e1688560dc47e64b94dad35d71, 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 ≤ v < ca9983bc3a1189bd72f9ae449d925a66b2616326, 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 ≤ v < 7bea09f60f2ad5d232e2db8f1c14e850fd3fd416, 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 ≤ v < 4066b5b546293f44cd6d0e84ece6e3ee7ff27093, 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 ≤ v < 7b07be1ff1cb6c49869910518650e8d0abc7d25f, 2.6.12 | 3df375a1e75483b7d973c3cc2e46aa374db8428b, f9dc0f45d2cd0189ce666288a29d2cc32c2e44d5, 4afcb985355210e1688560dc47e64b94dad35d71, ca9983bc3a1189bd72f9ae449d925a66b2616326, 7bea09f60f2ad5d232e2db8f1c14e850fd3fd416, 4066b5b546293f44cd6d0e84ece6e3ee7ff27093, 7b07be1ff1cb6c49869910518650e8d0abc7d25f |
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.