🔍 CVE-2021-29561

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

🇰🇷 한글 설명

TensorFlow의 `tf.raw_ops.LoadAndRemapMatrix` 연산에서 `ckpt_path`가 항상 유효한 스칼라 값이라고 가정하는 구현 결함이 존재합니다. 공격자가 첫 번째 인자로 스칼라가 아닌 다른 텐서를 전달할 경우, 랭크 체크(rank CHECK) 실패가 발생하여 프로세스가 강제 종료될 수 있습니다.

💡 쉬운 설명

머신러닝 도구인 TensorFlow에서 잘못된 형식의 데이터를 입력하면 프로그램이 갑자기 꺼지게 만들 수 있는 취약점입니다. 이를 통해 서비스가 중단되는 거부 공격(DoS)이 가능합니다.

🇺🇸 원문 (English)

TensorFlow is an end-to-end open source platform for machine learning. An attacker can cause a denial of service by exploiting a `CHECK`-failure coming from `tf.raw_ops.LoadAndRemapMatrix`. This is because the implementation(https://github.com/tensorflow/tensorflow/blob/d94227d43aa125ad8b54115c03cece54f6a1977b/tensorflow/core/kernels/ragged_tensor_to_tensor_op.cc#L219-L222) assumes that the `ckpt_path` is always a valid scalar. However, an attacker can send any other tensor as the first argument of `LoadAndRemapMatrix`. This would cause the rank `CHECK` in `scalar<T>()()` to trigger and terminate the process. 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 포함)

⚔️ 공격 벡터

LoadAndRemapMatrix 연산의 첫 번째 인자에 스칼라가 아닌 임의의 텐서를 입력하여 프로세스 종료 유도

🛡️ 대응 방법

TensorFlow를 2.5.0 이상 버전으로 업데이트하거나, 해당 버전이 포함된 패치 버전을 적용하십시오.

🔧 검증 코드

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

Shell / Script
pip show tensorflow | grep 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