🔍 CVE-2021-37643

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

🇰🇷 한글 설명

TensorFlow의 `tf.raw_ops.MatrixDiagPartOp` 함수에서 유효하지 않은 패딩 값을 제공할 경우 Null 포인터 역참조 또는 잘못된 동작이 발생할 수 있습니다. 이는 텐서 버퍼의 값을 읽기 전에 데이터 존재 여부를 확인하지 않아 발생하는 취약점입니다.

💡 쉬운 설명

머신러닝 도구인 TensorFlow에서 특정 계산을 수행할 때 데이터가 비어있는지 확인하지 않아 프로그램이 갑자기 멈추거나 잘못된 결과를 낼 수 있는 문제입니다. 잘못된 입력값을 넣으면 시스템이 예상치 못한 방식으로 작동할 수 있습니다.

🇺🇸 원문 (English)

TensorFlow is an end-to-end open source platform for machine learning. If a user does not provide a valid padding value to `tf.raw_ops.MatrixDiagPartOp`, then the code triggers a null pointer dereference (if input is empty) or produces invalid behavior, ignoring all values after the first. The [implementation](https://github.com/tensorflow/tensorflow/blob/8d72537c6abf5a44103b57b9c2e22c14f5f49698/tensorflow/core/kernels/linalg/matrix_diag_op.cc#L89) reads the first value from a tensor buffer without first checking that the tensor has values to read from. We have patched the issue in GitHub commit 482da92095c4d48f8784b1f00dda4f81c28d2988. 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.3.4, 2.4.3, 2.5.1 및 2.6.0 미만 버전

⚔️ 공격 벡터

조작된 패딩 값을 포함한 텐서 데이터를 `tf.raw_ops.MatrixDiagPartOp` 연산에 입력하여 발생

🛡️ 대응 방법

TensorFlow를 2.6.0 이상 버전으로 업데이트하거나, 지원되는 최신 패치 버전(2.5.1, 2.4.3, 2.3.4 등)으로 업데이트하십시오.

🔧 검증 코드

출력된 버전이 2.6.0 이상이거나 취약점이 패치된 버전(2.5.1, 2.4.3, 2.3.4)인지 확인합니다.

Shell / Script
python3 -c 'import tensorflow as tf; print(tf.__version__)'

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:H