🔍 CVE-2021-29612

3.6
CVSS Score
LOW
2021-05-14
2026-06-17 03:48
✅ 완료

🇰🇷 한글 설명

TensorFlow의 Eigen 구현체 내 `tf.raw_ops.BandedTriangularSolve` 연산에서 힙 버퍼 오버플로가 발생할 수 있습니다. 입력 텐서가 비어 있는지 확인하는 검증 과정이 누락되었으며, 오류 발생 시 실행을 중단하는 매크로 처리가 적절히 이루어지지 않아 발생합니다.

💡 쉬운 설명

머신러닝 도구인 TensorFlow에서 잘못된 데이터를 입력하면 컴퓨터 메모리의 허용된 범위를 넘어서는 데이터가 써질 수 있는 오류입니다. 이로 인해 프로그램이 갑자기 종료되거나 시스템에 예기치 않은 동작이 발생할 수 있습니다.

🇺🇸 원문 (English)

TensorFlow is an end-to-end open source platform for machine learning. An attacker can trigger a heap buffer overflow in Eigen implementation of `tf.raw_ops.BandedTriangularSolve`. The implementation(https://github.com/tensorflow/tensorflow/blob/eccb7ec454e6617738554a255d77f08e60ee0808/tensorflow/core/kernels/linalg/banded_triangular_solve_op.cc#L269-L278) calls `ValidateInputTensors` for input validation but fails to validate that the two tensors are not empty. Furthermore, since `OP_REQUIRES` macro only stops execution of current function after setting `ctx->status()` to a non-OK value, callers of helper functions that use `OP_REQUIRES` must check value of `ctx->status()` before continuing. This doesn't happen in this op's implementation(https://github.com/tensorflow/tensorflow/blob/eccb7ec454e6617738554a255d77f08e60ee0808/tensorflow/core/kernels/linalg/banded_triangular_solve_op.cc#L219), hence the validation that is present is also not effective. 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 포함)

⚔️ 공격 벡터

조작된 빈 텐서(empty tensors)를 포함한 입력을 `tf.raw_ops.BandedTriangularSolve` 연산에 전달

🛡️ 대응 방법

TensorFlow를 2.5.0 이상 버전으로 업데이트하거나, 해당 보안 패치가 적용된 최신 마이너 버전으로 업데이트하십시오.

🔧 검증 코드

출력된 버전 번호가 2.5.0보다 낮은지 확인하십시오.

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

📊 CVSS Vector String

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

💻 영향받는 소프트웨어

Azure Machine Learning