🇰🇷 한글 설명
TensorFlow Lite의 hashtable lookup 구현에서 0으로 나누기 오류(division by zero)가 발생할 수 있는 취약점이 발견되었습니다. 공격자가 특정 차원이 0인 모델을 제작하여 시스템 오류를 유발할 수 있습니다.
💡 쉬운 설명
특수하게 만들어진 인공지능 모델을 실행할 때, 컴퓨터가 수학적으로 계산할 수 없는 '0으로 나누기' 상황에 빠져 프로그램이 멈출 수 있는 문제입니다. 이는 서비스 중단(DoS)을 일으킬 수 있습니다.
🇺🇸 원문 (English)
TensorFlow is an end-to-end open source platform for machine learning. The TFLite implementation of hashtable lookup is vulnerable to a division by zero error(https://github.com/tensorflow/tensorflow/blob/1a8e885b864c818198a5b2c0cbbeca5a1e833bc8/tensorflow/lite/kernels/hashtable_lookup.cc#L114-L115) An attacker can craft a model such that `values`'s first dimension would be 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 포함)
⚔️ 공격 벡터
0의 차원을 가진 값을 포함하도록 조작된 악성 TensorFlow Lite 모델 파일을 실행함
🛡️ 대응 방법
TensorFlow를 2.5.0 이상의 버전으로 업데이트하거나, 해당 버전의 보안 패치가 적용된 버전을 사용함
🔧 검증 코드
출력된 버전 번호가 2.5.0 미만인지 확인하여 취약 여부를 판단합니다.
python3 -c 'import tensorflow as tf; print(tf.__version__)'