🇰🇷 한글 설명
TensorFlow의 `tf.raw_ops.SdcaOptimizerV2` 함수에서 특수하게 제작된 잘못된 인자를 전달할 경우, 힙 할당 데이터의 범위를 벗어난 영역을 읽을 수 있는 취약점이 존재합니다. 이는 `example_labels`의 길이와 예제 수가 일치하는지 확인하지 않는 구현 결함으로 인해 발생합니다.
💡 쉬운 설명
머신러닝 도구인 TensorFlow에서 데이터의 길이를 제대로 확인하지 않아 발생하는 오류입니다. 공격자가 조작된 데이터를 보내면 프로그램이 허용되지 않은 메모리 영역을 몰래 읽어갈 수 있습니다.
🇺🇸 원문 (English)
TensorFlow is an end-to-end open source platform for machine learning. In affected versions an attacker can read from outside of bounds of heap allocated data by sending specially crafted illegal arguments to `tf.raw_ops.SdcaOptimizerV2`. The [implementation](https://github.com/tensorflow/tensorflow/blob/460e000de3a83278fb00b61a16d161b1964f15f4/tensorflow/core/kernels/sdca_internal.cc#L320-L353) does not check that the length of `example_labels` is the same as the number of examples. We have patched the issue in GitHub commit a4e138660270e7599793fa438cd7b2fc2ce215a6. The fix will be included in TensorFlow 2.6.0. We will also cherrypick this commit on TensorFlow 2.5.1, TensorFlow 2.4.3, and TensorFlow 2.3.4, as these are also affected and still in supported range.
📍 영향받는 시스템
TensorFlow 2.6.0 미만 버전 (2.5.1, 2.4.3, 2.3.4 포함)
⚔️ 공격 벡터
조작된 인자를 포함한 `tf.raw_ops.SdcaOptimizerV2` 호출을 통한 메모리 경계 외 읽기 공격
🛡️ 대응 방법
TensorFlow를 2.6.0 이상 버전으로 업데이트하거나, 패치가 적용된 2.5.1, 2.4.3, 2.3.4 버전으로 업데이트하십시오.
🔧 검증 코드
출력된 버전 번호가 2.6.0보다 낮거나 패치된 특정 버전(2.5.1, 2.4.3, 2.3.4)보다 낮으면 취약할 수 있습니다.
python3 -c 'import tensorflow as tf; print(tf.__version__)'