🇰🇷 한글 설명
TensorFlow의 `tf.raw_ops.MaxPoolGradWithهماArgmax` 구현에서 0으로 나누기 오류가 발생할 수 있는 취약점이 발견되었습니다. 텐서의 배치(batch) 차원이 0인지 확인하는 검증 과정이 누락되어 발생하며, 이는 TensorFlow 2.5.0 및 주요 이전 버전에서 수정되었습니다.
💡 쉬운 설명
머신러닝 계산 과정에서 숫자를 0으로 나누는 실수가 발생하여 프로그램이 갑자기 멈출 수 있는 문제입니다. 데이터의 크기가 0인 경우를 제대로 체크하지 못해 발생하는 오류입니다.
🇺🇸 원문 (English)
TensorFlow is an end-to-end open source platform for machine learning. The implementation of `tf.raw_ops.MaxPoolGradWithArgmax` is vulnerable to a division by 0. The implementation(https://github.com/tensorflow/tensorflow/blob/279bab6efa22752a2827621b7edb56a730233bd8/tensorflow/core/kernels/maxpooling_op.cc#L1033-L1034) fails to validate that the batch dimension of the tensor is non-zero, before dividing by this quantity. 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 포함)
⚔️ 공격 벡터
배치 크기가 0인 특수하게 조작된 텐서 데이터를 입력하여 프로그램의 비정상 종료 유도
🛡️ 대응 방법
TensorFlow를 2.5.0 이상의 최신 버전으로 업데이트하거나, 해당 패치가 적용된 유지보수 버전으로 업데이트하십시오.
🔧 검증 코드
출력된 버전 번호가 2.5.0보다 낮은지 확인하여 취약 여부를 판단합니다.
python3 -c 'import tensorflow as tf; print(tf.__version__)'