🇰🇷 한글 설명
TensorFlow의 TFLite `DepthToSpace` 연산자 구현에서 0으로 나누기 오류(division by zero)가 발생할 수 있는 취약점이 발견되었습니다. 공격자가 `block_size`를 0으로 설정한 특수하게 제작된 모델을 통해 시스템 오류를 유발할 수 있습니다.
💡 쉬운 설명
머신러닝 모델을 처리하는 과정에서 숫자를 0으로 나누는 계산 실수가 발생할 수 있는 문제입니다. 악의적으로 만들어진 모델을 실행하면 프로그램이 갑자기 멈추거나 오류가 발생할 수 있습니다.
🇺🇸 원문 (English)
TensorFlow is an end-to-end open source platform for machine learning. The implementation of the `DepthToSpace` TFLite operator is vulnerable to a division by zero error(https://github.com/tensorflow/tensorflow/blob/0d45ea1ca641b21b73bcf9c00e0179cda284e7e7/tensorflow/lite/kernels/depth_to_space.cc#L63-L69). An attacker can craft a model such that `params->block_size` is 0. 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 포함)
⚔️ 공격 벡터
block_size 파라미터를 0으로 설정한 조작된 TFLite 모델을 로드하여 실행
🛡️ 대응 방법
TensorFlow를 2.5.0 이상의 최신 버전으로 업데이트하거나 해당 패치가 적용된 버전으로 업그레이드
🔧 검증 코드
출력된 버전 번호가 2.5.0 미만인지 확인하여 취약 여부를 판단합니다.
python3 -c 'import tensorflow as tf; print(tf.__version__)'