🔍 CVE-2021-37655

7.3
CVSS Score
HIGH
2021-08-12
2026-06-17 04:00
✅ 완료

🇰🇷 한글 설명

TensorFlow의 `tf.raw_ops.ResourceScatterUpdate` 함수에서 인덱스와 업데이트 데이터의 형상(shape) 간 관계를 검증할 때 불완전한 로직이 존재합니다. 공격자가 잘못된 인자를 전달할 경우 힙 할당 데이터의 범위를 벗어난 읽기 작업이 발생할 수 있습니다.

💡 쉬운 설명

머신러닝 도구인 TensorFlow에서 데이터의 크기를 확인하는 과정에 오류가 있어, 잘못된 데이터를 입력하면 허용되지 않은 메모리 영역을 읽을 수 있는 취약점입니다. 이를 통해 시스템의 민감한 정보가 유출될 위험이 있습니다.

🇺🇸 원문 (English)

TensorFlow is an end-to-end open source platform for machine learning. In affected versions an attacker can trigger a read from outside of bounds of heap allocated data by sending invalid arguments to `tf.raw_ops.ResourceScatterUpdate`. The [implementation](https://github.com/tensorflow/tensorflow/blob/f24faa153ad31a4b51578f8181d3aaab77a1ddeb/tensorflow/core/kernels/resource_variable_ops.cc#L919-L923) has an incomplete validation of the relationship between the shapes of `indices` and `updates`: instead of checking that the shape of `indices` is a prefix of the shape of `updates` (so that broadcasting can happen), code only checks that the number of elements in these two tensors are in a divisibility relationship. We have patched the issue in GitHub commit 01cff3f986259d661103412a20745928c727326f. 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 포함)

⚔️ 공격 벡터

ResourceScatterUpdate 연산에 조작된 인덱스 및 업데이트 텐서 인자 전달

🛡️ 대응 방법

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:H/I:L/A:H

💻 영향받는 소프트웨어

Azure Machine Learning