🔍 CVE-2021-29547

2.5
CVSS Score
LOW
2021-05-14
2026-06-17 03:47
✅ 완료

🇰🇷 한글 설명

TensorFlow의 `tf.raw_ops.QuantizedBatchNormWithGlobalNormalization` 연산에서 입력값이 비어 있을 경우 범위를 벗어난 데이터에 접근할 수 있는 취약점이 발견되었습니다. 이로 인해 세그멘테이션 오류(segfault)가 발생하며 서비스 거부(DoS) 상태에 빠질 수 있습니다.

💡 쉬운 설명

머신러닝 도구인 TensorFlow에서 빈 데이터를 처리할 때 프로그램이 예상치 못한 메모리 영역을 건드려 강제로 종료될 수 있는 문제입니다. 공격자가 이를 이용해 시스템을 멈추게 만들 수 있습니다.

🇺🇸 원문 (English)

TensorFlow is an end-to-end open source platform for machine learning. An attacker can cause a segfault and denial of service via accessing data outside of bounds in `tf.raw_ops.QuantizedBatchNormWithGlobalNormalization`. This is because the implementation(https://github.com/tensorflow/tensorflow/blob/55a97caa9e99c7f37a0bbbeb414dc55553d3ae7f/tensorflow/core/kernels/quantized_batch_norm_op.cc#L176-L189) assumes the inputs are not empty. If any of these inputs is empty, `.flat<T>()` is an empty buffer, so accessing the element at index 0 is accessing data outside of bounds. 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 포함)

⚔️ 공격 벡터

비어 있는 입력 데이터를 포함한 특수하게 조작된 TensorFlow 연산 실행

🛡️ 대응 방법

TensorFlow를 2.5.0 이상의 최신 버전으로 업데이트하거나 해당 보안 패치가 적용된 버전으로 업그레이드

🔧 검증 코드

출력된 버전 번호가 2.5.0보다 낮으면 취약한 버전이 설치된 상태입니다.

Shell / Script
python3 -c 'import tensorflow as tf; print(tf.__version__)'

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:L

💻 영향받는 소프트웨어

Azure Machine Learning