🔍 CVE-2021-37660

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

🇰🇷 한글 설명

TensorFlow의 특정 버전에서 인플레이스(inplace) 연산 시 조작된 인자를 사용하면 0으로 나누기 오류가 발생하여 부동 소수점 예외가 발생할 수 있습니다. 이는 구현 과정에서 논리 연산자 오류(|| 대신 && 사용)로 인해 빈 데이터를 처리하지 못해 발생하는 문제입니다.

💡 쉬운 설명

머신러닝 도구인 TensorFlow에서 잘못된 계산 명령을 내리면 프로그램이 0으로 나누는 오류를 일으켜 멈출 수 있습니다. 공격자가 특수하게 만든 데이터를 입력하면 시스템에 오류를 유발할 수 있습니다.

🇺🇸 원문 (English)

TensorFlow is an end-to-end open source platform for machine learning. In affected versions an attacker can cause a floating point exception by calling inplace operations with crafted arguments that would result in a division by 0. The [implementation](https://github.com/tensorflow/tensorflow/blob/84d053187cb80d975ef2b9684d4b61981bca0c41/tensorflow/core/kernels/inplace_ops.cc#L283) has a logic error: it should skip processing if `x` and `v` are empty but the code uses `||` instead of `&&`. We have patched the issue in GitHub commit e86605c0a336c088b638da02135ea6f9f6753618. 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 포함)

⚔️ 공격 벡터

조작된 인자를 포함한 인플레이스 연산 호출을 통한 부동 소수점 예외 유발

🛡️ 대응 방법

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