🔍 CVE-2021-29567

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

🇰🇷 한글 설명

TensorFlow의 `tf.raw_ops.SparseDenseCwiseMul` 함수에서 입력 인자의 차원 간 제약 조건을 검증하지 않는 취약점이 발견되었습니다. 공격자는 이를 악용하여 프로그램의 `CHECK` 실패를 유도해 서비스 거부(DoS)를 일으키거나, 힙에 할당된 데이터 범위를 벗어난 메모리에 접근할 수 있습니다.

💡 쉬운 설명

TensorFlow라는 인공지능 도구에서 데이터의 크기를 제대로 확인하지 않는 문제가 있습니다. 이를 이용해 프로그램을 강제로 종료시키거나 컴퓨터 메모리의 잘못된 부분에 접근하여 시스템을 마비시킬 수 있습니다.

🇺🇸 원문 (English)

TensorFlow is an end-to-end open source platform for machine learning. Due to lack of validation in `tf.raw_ops.SparseDenseCwiseMul`, an attacker can trigger denial of service via `CHECK`-fails or accesses to outside the bounds of heap allocated data. Since the implementation(https://github.com/tensorflow/tensorflow/blob/38178a2f7a681a7835bb0912702a134bfe3b4d84/tensorflow/core/kernels/sparse_dense_binary_op_shared.cc#L68-L80) only validates the rank of the input arguments but no constraints between dimensions(https://www.tensorflow.org/api_docs/python/tf/raw_ops/SparseDenseCwiseMul), an attacker can abuse them to trigger internal `CHECK` assertions (and cause program termination, denial of service) or to write to memory outside of bounds of heap allocated tensor buffers. 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 포함)

⚔️ 공격 벡터

조작된 차원 값을 가진 입력 데이터를 `tf.raw_ops.SparseDenseCwiseMul` 연산에 전달

🛡️ 대응 방법

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