🇰🇷 한글 설명
TensorFlow의 `tf.raw_ops.Dequantize` 함수에서 입력값 검증이 누락되어 발생한 취약점입니다. 공격자가 `min_range`와 `max_range` 텐서의 형상(shape)이 일치하지 않게 조작할 경우, 힙 할당 데이터의 경계를 벗어난 메모리 읽기가 발생할 수 있습니다.
💡 쉬운 설명
머신러닝 도구인 TensorFlow에서 데이터의 크기를 확인하는 과정이 빠져 있는 문제입니다. 이를 이용하면 프로그램이 허용되지 않은 메모리 영역을 몰래 읽어갈 수 있습니다.
🇺🇸 원문 (English)
TensorFlow is an end-to-end open source platform for machine learning. Due to lack of validation in `tf.raw_ops.Dequantize`, an attacker can trigger a read from outside of bounds of heap allocated data. The implementation(https://github.com/tensorflow/tensorflow/blob/26003593aa94b1742f34dc22ce88a1e17776a67d/tensorflow/core/kernels/dequantize_op.cc#L106-L131) accesses the `min_range` and `max_range` tensors in parallel but fails to check that they have the same shape. The fix will be included in TensorFlow 2.5.0. We will also cherrypick this commit on TensorFlow 2.4.2, TensorFlow 2.3.3, TensorFlow 2.2.3 and TensorFlow 2.1.4, as these are also affected and still in supported range.
📍 영향받는 시스템
TensorFlow 2.5.0 미만 버전 (2.4.2, 2.3.3, 2.2.3, 2.1.4 포함)
⚔️ 공격 벡터
서로 다른 형상을 가진 `min_range`와 `max_range` 텐서를 입력하여 메모리 경계 외 읽기 유도
🛡️ 대응 방법
TensorFlow를 2.5.0 이상의 최신 버전으로 업데이트하거나 해당 패치가 적용된 버전으로 업그레이드
🔧 검증 코드
출력된 버전이 2.5.0 미만인 경우 해당 취약점에 노출된 상태입니다.
python3 -c 'import tensorflow as tf; print(tf.__version__)'