🇰🇷 한글 설명
TensorFlow의 `tf.raw_ops.Conv3DBackprop*` 연산에서 입력 텐서가 비어 있는지 확인하지 않아 0으로 나누기 오류가 발생합니다. 공격자가 입력 크기를 제어할 수 있는 경우, 이 오류를 유발하여 서비스 거부(DoS) 상태를 만들 수 있습니다.
💡 쉬운 설명
머신러닝 도구인 TensorFlow에서 계산 과정 중 숫자를 0으로 나누는 실수가 발견되었습니다. 이를 이용해 프로그램이 갑자기 멈추게 만드는 공격이 가능합니다.
🇺🇸 원문 (English)
TensorFlow is an end-to-end open source platform for machine learning. The `tf.raw_ops.Conv3DBackprop*` operations fail to validate that the input tensors are not empty. In turn, this would result in a division by 0. This is because the implementation(https://github.com/tensorflow/tensorflow/blob/a91bb59769f19146d5a0c20060244378e878f140/tensorflow/core/kernels/conv_grad_ops_3d.cc#L430-L450) does not check that the divisor used in computing the shard size is not zero. Thus, if attacker controls the input sizes, they can trigger a denial of service via a division by zero error. 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__)'