🔍 CVE-2021-29574

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

🇰🇷 한글 설명

TensorFlow의 `tf.raw_ops.MaxPool3DGradGrad` 구현에서 공격자가 제공한 빈 텐서를 처리할 때 널 포인터를 역참조하여 정의되지 않은 동작이 발생하는 취약점입니다. 입력된 3개의 텐서가 비어 있는지 확인하는 검증 과정이 누락되어 발생합니다.

💡 쉬운 설명

머신러닝 도구인 TensorFlow에서 비어 있는 데이터를 처리할 때 프로그램이 예상치 못한 오류를 일으키며 멈추거나 오작동할 수 있는 문제입니다. 공격자가 특수하게 조작된 빈 데이터를 입력하면 시스템에 문제를 일으킬 수 있습니다.

🇺🇸 원문 (English)

TensorFlow is an end-to-end open source platform for machine learning. The implementation of `tf.raw_ops.MaxPool3DGradGrad` exhibits undefined behavior by dereferencing null pointers backing attacker-supplied empty tensors. The implementation(https://github.com/tensorflow/tensorflow/blob/72fe792967e7fd25234342068806707bbc116618/tensorflow/core/kernels/pooling_ops_3d.cc#L679-L703) fails to validate that the 3 tensor inputs are not empty. If any of them is empty, then accessing the elements in the tensor results in dereferencing a null pointer. 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 포함)

⚔️ 공격 벡터

공격자가 조작된 빈 텐서(empty tensor)를 포함한 입력을 TensorFlow 모델에 전달하여 발생

🛡️ 대응 방법

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

🔧 검증 코드

출력된 버전 번호가 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