🇰🇷 한글 설명
TensorFlow의 TFLite 연산자인 SpaceToDepth의 Prepare 단계에서 0으로 나누는 동작에 대한 검증이 누락되었습니다. 공격자가 block_size를 0으로 설정한 악성 모델을 제작할 경우 문제가 발생할 수 있습니다.
💡 쉬운 설명
인공지능 모델을 처리하는 과정에서 숫자를 0으로 나누는 계산 실수가 발생할 수 있는 보안 약점입니다. 특수하게 제작된 모델을 실행하면 프로그램이 예상치 못하게 작동할 수 있습니다.
🇺🇸 원문 (English)
TensorFlow is an end-to-end open source platform for machine learning. The `Prepare` step of the `SpaceToDepth` TFLite operator does not check for 0 before division(https://github.com/tensorflow/tensorflow/blob/5f7975d09eac0f10ed8a17dbb6f5964977725adc/tensorflow/lite/kernels/space_to_depth.cc#L63-L67). An attacker can craft a model such that `params->block_size` would be zero. 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__)'