CVE-2021-29614
Açıklama
TensorFlow, makine öğrenimi için uçtan uca açık kaynaklı bir platformdur. `tf.io.decode_raw` uygulaması, `fixed_length` ve daha geniş veri türleri birleştirildiğinde hatalı sonuçlar üretmekte ve Python yorumlayıcısını çökertebilmektedir. Dolgulu versiyonun (https://github.com/tensorflow/tensorflow/blob/1d8903e5b167ed0432077a3db6e462daf781d1fe/tensorflow/core/kernels/decode_padded_raw_op.cc) uygulaması, işaretçi aritmetiği kurallarıyla ilgili bir karışıklık nedeniyle hatalıdır. İlk olarak kod, `fixed_length` değerini tür argümanının boyutuna bölerek her bir çıktı öğesinin genişliğini hesaplar (https://github.com/tensorflow/tensorflow/blob/1d8903e5b167ed0432077a3db6e462daf781d1fe/tensorflow/core/kernels/decode_padded_raw_op.cc#L61). `fixed_length` argümanı aynı zamanda çıktı tensörü için gereken boyutu belirlemek amacıyla kullanılır (https://github.com/tensorflow/tensorflow/blob/1d8903e5b167ed0432077a3db6e462daf781d1fe/tensorflow/core/kernels/decode_padded_raw_op.cc#L63-L79). Bunu yeniden kodlama kodu takip eder (https://github.com/tensorflow/tensorflow/blob/1d8903e5b167ed0432077a3db6e462daf781d1fe/tensorflow/core/kernels/decode_padded_raw_op.cc#L85-L94). Hatalı kod yukarıdaki son satırdır: girdiyle en fazla `fixed_length` bayt kopyalamış olmasına rağmen, `out_data` işaretçisini `fixed_length * sizeof(T)` bayt kaydırmaktadır. Bu durum, girdinin bazı bölümlerinin çıktıya çözümlenmemesiyle sonuçlanır. Ayrıca, işaretçi ilerlemesi istenenden çok daha geniş olduğu için bu durum hızla destekleyici verilerin sınırları dışına yazılmasına yol açar. Bu OOB yazma işlemi, burada belirtilen reprodüktörde yorumlayıcı çökmesine neden olur; ancak bu mekanizma bellekte periyodik olarak yerleştirilmiş konumlara yazmaya izin verdiğinden, daha ciddi saldırılar da düzenlenebilir. Düzeltme TensorFlow 2.5.0 sürümüne dahil edilecektir. Etkilenen ve hala desteklenen aralıkta oldukları için bu commit ayrıca TensorFlow 2.4.2, TensorFlow 2.3.3, TensorFlow 2.2.3 ve TensorFlow 2.1.4 sürümlerine de uygulanacaktır.
Nasıl düzeltilir
- google tensorflow2.1.4, 2.2.3, 2.3.3, 2.4.2 ya da sonraki bir sürüm
- tensorflow2.1.4, 2.2.3, 2.3.3, 2.4.2 ya da sonraki bir sürüm
- tensorflow-cpu2.1.4, 2.2.3, 2.3.3, 2.4.2 ya da sonraki bir sürüm
- tensorflow-gpu2.1.4, 2.2.3, 2.3.3, 2.4.2 ya da sonraki bir sürüm
Etkilenen ürünler
| Ürün | Etkilenen sürümler | Düzeltildiği sürüm |
|---|---|---|
| google tensorflow | v < 2.1.4, 2.2.0 ≤ v < 2.2.3, 2.3.0 ≤ v < 2.3.3, 2.4.0 ≤ v < 2.4.2 | 2.1.4, 2.2.3, 2.3.3, 2.4.2 |
| tensorflowPyPI | v < 2.1.4, 2.2.0 ≤ v < 2.2.3, 2.3.0 ≤ v < 2.3.3, 2.4.0 ≤ v < 2.4.2 | 2.1.4, 2.2.3, 2.3.3, 2.4.2 |
| tensorflow-cpuPyPI | v < 2.1.4, 2.2.0 ≤ v < 2.2.3, 2.3.0 ≤ v < 2.3.3, 2.4.0 ≤ v < 2.4.2 | 2.1.4, 2.2.3, 2.3.3, 2.4.2 |
| tensorflow-gpuPyPI | v < 2.1.4, 2.2.0 ≤ v < 2.2.3, 2.3.0 ≤ v < 2.3.3, 2.4.0 ≤ v < 2.4.2 | 2.1.4, 2.2.3, 2.3.3, 2.4.2 |
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.