🇰🇷 한글 설명
TensorFlow의 TrySimplify 구현 과정에서 입력값이 없는 노드를 최적화할 때 Null 포인터를 참조하여 정의되지 않은 동작이 발생하는 취약점입니다. 이로 인해 프로그램이 예기치 않게 종료되거나 불안정한 상태가 될 수 있습니다. 해당 문제는 TensorFlow 2.5.0 버전 및 주요 지원 버전들에 대한 패치를 통해 해결되었습니다.
💡 쉬운 설명
머신러닝 도구인 TensorFlow가 계산 과정을 단순화하려다 실수로 존재하지 않는 데이터 위치를 참조하여 오류를 일으키는 문제입니다. 이로 인해 프로그램이 갑자기 꺼질 수 있습니다.
🇺🇸 원문 (English)
TensorFlow is an end-to-end open source platform for machine learning. The implementation of TrySimplify(https://github.com/tensorflow/tensorflow/blob/c22d88d6ff33031aa113e48aa3fc9aa74ed79595/tensorflow/core/grappler/optimizers/arithmetic_optimizer.cc#L390-L401) has undefined behavior due to dereferencing a null pointer in corner cases that result in optimizing a node with no inputs. 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 포함)
⚔️ 공격 벡터
입력이 없는 특정 노드를 포함한 악의적인 그래프 모델을 로드하여 프로그램의 비정상 종료 유도
🛡️ 대응 방법
TensorFlow를 2.5.0 이상의 최신 버전으로 업데이트하거나 해당 패치가 적용된 버전으로 업그레이드
🔧 검증 코드
출력된 버전 번호가 2.5.0보다 낮은지 확인하여 취약 여부를 판단합니다.
python3 -c 'import tensorflow as tf; print(tf.__version__)'