🔍 CVE-2021-29554

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

🇰🇷 한글 설명

TensorFlow의 `tf.raw_ops.DenseCountSparseOutput` 함수에서 FPE(부동 소수점 예외) 런타임 오류로 인해 서비스 거부(DoS)가 발생할 수 있습니다. 사용자 데이터로부터 나누는 값을 계산할 때 결과가 0인지 확인하지 않아 발생하는 문제입니다. 이 문제는 TensorFlow 2.5.0 및 특정 패치 버전에서 수정되었습니다.

💡 쉬운 설명

프로그램이 숫자를 나눌 때 0으로 나누는 실수를 하여 프로그램이 갑자기 멈출 수 있는 문제입니다. 공격자가 특수한 데이터를 입력하면 시스템을 마비시킬 수 있습니다.

🇺🇸 원문 (English)

TensorFlow is an end-to-end open source platform for machine learning. An attacker can cause a denial of service via a FPE runtime error in `tf.raw_ops.DenseCountSparseOutput`. This is because the implementation(https://github.com/tensorflow/tensorflow/blob/efff014f3b2d8ef6141da30c806faf141297eca1/tensorflow/core/kernels/count_ops.cc#L123-L127) computes a divisor value from user data but does not check that the result is 0 before doing the division. Since `data` is given by the `values` argument, `num_batch_elements` is 0. The fix will be included in TensorFlow 2.5.0. We will also cherrypick this commit on TensorFlow 2.4.2, and TensorFlow 2.3.3, as these are also affected.

📍 영향받는 시스템

TensorFlow 2.5.0 미만 버전 (2.4.2, 2.3.3 포함)

⚔️ 공격 벡터

사용자 입력값이 포함된 `values` 인자를 통해 0으로 나누기 오류를 유도하는 방식

🛡️ 대응 방법

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