🔍 CVE-2021-37668

5.5
CVSS Score
MEDIUM
2021-08-12
2026-06-17 04:00
✅ 완료

🇰🇷 한글 설명

TensorFlow의 `tf.raw_ops.UnravelIndex` 연산 사용 시, dims 텐서의 요소가 0인 경우 0으로 나누기 오류가 발생하여 서비스 거부(DoS) 상태를 유발할 수 있습니다. 해당 구현체는 dims에 포함된 텐서가 비어 있는지 확인하지 않는 결함이 있습니다. 이 문제는 TensorFlow 2.6.0 및 특정 패치 버전에서 수정되었습니다.

💡 쉬운 설명

머신러닝 도구인 TensorFlow에서 특정 계산 명령을 내릴 때, 숫자를 0으로 나누는 실수를 유발하여 프로그램을 멈추게 만들 수 있는 취약점입니다. 공격자가 특수하게 조작된 데이터를 입력하면 서비스가 중단될 수 있습니다.

🇺🇸 원문 (English)

TensorFlow is an end-to-end open source platform for machine learning. In affected versions an attacker can cause denial of service in applications serving models using `tf.raw_ops.UnravelIndex` by triggering a division by 0. The [implementation](https://github.com/tensorflow/tensorflow/blob/460e000de3a83278fb00b61a16d161b1964f15f4/tensorflow/core/kernels/unravel_index_op.cc#L36) does not check that the tensor subsumed by `dims` is not empty. Hence, if one element of `dims` is 0, the implementation does a division by 0. We have patched the issue in GitHub commit a776040a5e7ebf76eeb7eb923bf1ae417dd4d233. 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 포함)

⚔️ 공격 벡터

모델을 서비스하는 애플리케이션에 `tf.raw_ops.UnravelIndex` 연산에 0이 포함된 dims 텐서를 입력하여 DoS 유발

🛡️ 대응 방법

TensorFlow를 2.6.0 이상 버전으로 업데이트하거나, 패치가 적용된 2.5.1, 2.4.3, 2.3.4 버전으로 업데이트하십시오.

🔧 검증 코드

출력된 버전이 2.6.0 미만인지 확인하여 취약 여부를 판단합니다.

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

📊 CVSS Vector String

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

💻 영향받는 소프트웨어

Azure Machine Learning