🔍 CVE-2021-37663

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

🇰🇷 한글 설명

TensorFlow의 `tf.raw_ops.QuantizeV2` 연산에서 입력값 검증이 불완전하여 발생하는 취약점입니다. 공격자가 null 포인터를 참조하거나 힙 할당 배열의 범위를 벗어난 데이터에 접근하여 정의되지 않은 동작을 유발할 수 있습니다.

💡 쉬운 설명

머신러닝 도구인 TensorFlow에서 데이터 범위를 설정하는 값이 잘못 입력되었을 때 이를 제대로 확인하지 못하는 문제입니다. 이를 통해 해커가 프로그램의 메모리 영역을 잘못 건드려 시스템 오류를 일으키거나 데이터를 훔쳐볼 수 있습니다.

🇺🇸 원문 (English)

TensorFlow is an end-to-end open source platform for machine learning. In affected versions due to incomplete validation in `tf.raw_ops.QuantizeV2`, an attacker can trigger undefined behavior via binding a reference to a null pointer or can access data outside the bounds of heap allocated arrays. The [implementation](https://github.com/tensorflow/tensorflow/blob/84d053187cb80d975ef2b9684d4b61981bca0c41/tensorflow/core/kernels/quantize_op.cc#L59) has some validation but does not check that `min_range` and `max_range` both have the same non-zero number of elements. If `axis` is provided (i.e., not `-1`), then validation should check that it is a value in range for the rank of `input` tensor and then the lengths of `min_range` and `max_range` inputs match the `axis` dimension of the `input` tensor. We have patched the issue in GitHub commit 6da6620efad397c85493b8f8667b821403516708. 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 포함)

⚔️ 공격 벡터

조작된 입력 텐서를 사용하여 QuantizeV2 연산을 실행함으로써 메모리 오염 유발

🛡️ 대응 방법

TensorFlow를 2.6.0 이상 버전으로 업데이트하거나 패치가 적용된 최신 마이너 버전으로 업데이트

🔧 검증 코드

출력된 버전 번호가 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:H/A:H