🇰🇷 한글 설명
TensorFlow의 `tf.raw_ops.ResourceGather` 연산에서 부동 소수점 예외를 유발하여 시스템 충돌을 일으킬 수 있는 취약점입니다. `batch_size` 값이 0인지 확인하지 않고 나누기 연산을 수행하기 때문에 발생합니다.
💡 쉬운 설명
프로그램이 숫자를 계산할 때 0으로 나누는 실수를 하여 프로그램이 갑자기 멈추거나 꺼질 수 있는 문제입니다. 공격자가 특정한 데이터를 입력하면 계산 오류를 유도하여 서비스를 중단시킬 수 있습니다.
🇺🇸 원문 (English)
TensorFlow is an end-to-end open source platform for machine learning. In affected versions an attacker can trigger a crash via a floating point exception in `tf.raw_ops.ResourceGather`. The [implementation](https://github.com/tensorflow/tensorflow/blob/f24faa153ad31a4b51578f8181d3aaab77a1ddeb/tensorflow/core/kernels/resource_variable_ops.cc#L725-L731) computes the value of a value, `batch_size`, and then divides by it without checking that this value is not 0. We have patched the issue in GitHub commit ac117ee8a8ea57b73d34665cdf00ef3303bc0b11. 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 포함)
⚔️ 공격 벡터
조작된 batch_size 값을 포함한 데이터를 TensorFlow 연산에 입력하여 부동 소수점 예외 유도
🛡️ 대응 방법
TensorFlow를 2.6.0 이상의 버전으로 업데이트하거나 패치가 적용된 최신 마이너 버전으로 업데이트
🔧 검증 코드
출력된 버전 번호가 2.6.0보다 낮은지 확인하여 취약 여부를 판단합니다.
python3 -c 'import tensorflow as tf; print(tf.__version__)'