🇰🇷 한글 설명
TensorFlow의 `tf.raw_ops.Conv3DBackprop*` 연산에서 인자 간 검증이 누락되어 힙 버퍼 오버플로우가 발생할 수 있습니다. 이는 입력, 필터 크기, 출력 텐서의 형상이 동일하다고 가정하고 병렬로 접근하는 구현 방식의 결함 때문입니다.
💡 쉬운 설명
머신러닝 도구인 TensorFlow에서 데이터 크기를 확인하는 과정이 빠져 있어, 잘못된 데이터를 넣으면 메모리 오류가 발생할 수 있습니다. 이로 인해 프로그램이 강제로 종료되거나 보안 문제가 생길 수 있습니다.
🇺🇸 원문 (English)
TensorFlow is an end-to-end open source platform for machine learning. Missing validation between arguments to `tf.raw_ops.Conv3DBackprop*` operations can result in heap buffer overflows. This is because the implementation(https://github.com/tensorflow/tensorflow/blob/4814fafb0ca6b5ab58a09411523b2193fed23fed/tensorflow/core/kernels/conv_grad_shape_utils.cc#L94-L153) assumes that the `input`, `filter_sizes` and `out_backprop` tensors have the same shape, as they are accessed in parallel. 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 포함)
⚔️ 공격 벡터
조작된 텐서 형상을 가진 데이터를 `tf.raw_ops.Conv3DBackprop*` 연산에 입력하여 메모리 오버플로우 유도
🛡️ 대응 방법
TensorFlow를 2.5.0 이상의 최신 버전으로 업데이트하거나 해당 보안 패치가 적용된 버전으로 업그레이드
🔧 검증 코드
출력된 버전 번호가 2.5.0보다 낮은 경우 취약한 상태입니다.
python3 -c 'import tensorflow as tf; print(tf.__version__)'