🔍 CVE-2021-37681

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

🇰🇷 한글 설명

TensorFlow의 TFLite 내 SVDF 구현에서 Null 포인터 오류가 발생할 수 있는 취약점이 발견되었습니다. GetVariableInput 함수가 Null을 반환할 수 있음에도 GetTensorData가 이를 유효한 텐서로 간주하여 예외가 발생합니다. 이 문제는 TensorFlow 2.6.0 및 특정 이전 버전의 패치를 통해 해결되었습니다.

💡 쉬운 설명

프로그램이 존재하지 않는 데이터(Null)를 실제 데이터가 있는 것처럼 잘못 처리하여 오류가 발생하는 문제입니다. 이로 인해 프로그램이 갑자기 종료되거나 비정상적으로 동작할 수 있습니다.

🇺🇸 원문 (English)

TensorFlow is an end-to-end open source platform for machine learning. In affected versions the implementation of SVDF in TFLite is [vulnerable to a null pointer error](https://github.com/tensorflow/tensorflow/blob/460e000de3a83278fb00b61a16d161b1964f15f4/tensorflow/lite/kernels/svdf.cc#L300-L313). The [`GetVariableInput` function](https://github.com/tensorflow/tensorflow/blob/460e000de3a83278fb00b61a16d161b1964f15f4/tensorflow/lite/kernels/kernel_util.cc#L115-L119) can return a null pointer but `GetTensorData` assumes that the argument is always a valid tensor. Furthermore, because `GetVariableInput` calls [`GetMutableInput`](https://github.com/tensorflow/tensorflow/blob/460e000de3a83278fb00b61a16d161b1964f15f4/tensorflow/lite/kernels/kernel_util.cc#L82-L90) which might return `nullptr`, the `tensor->is_variable` expression can also trigger a null pointer exception. We have patched the issue in GitHub commit 5b048e87e4e55990dae6b547add4dae59f4e1c76. 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 포함)

⚔️ 공격 벡터

조작된 TFLite 모델 파일을 로드하여 Null 포인터 예외를 유도하는 방식

🛡️ 대응 방법

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