🇰🇷 한글 설명
TensorFlow에서 모델의 제어 흐름 그래프를 생성하는 과정 중, 쌍을 이루어야 하는 노드가 누락될 경우 Null 포인터 예외가 발생합니다. 이는 특정 노드가 존재할 것이라고 가정하고 코드가 실행되다가 존재하지 않는 부모 노드를 참조하여 시스템 충돌을 일으키는 취약점입니다.
💡 쉬운 설명
머신러닝 도구인 TensorFlow가 모델을 읽어오는 과정에서 짝이 맞지 않는 데이터를 만나면 프로그램이 갑자기 꺼지는 오류가 발생합니다. 악의적으로 조작된 모델 파일을 실행할 경우 프로그램이 비정상적으로 종료될 수 있습니다.
🇺🇸 원문 (English)
TensorFlow is an open source platform for machine learning. In affected versions the process of building the control flow graph for a TensorFlow model is vulnerable to a null pointer exception when nodes that should be paired are not. This occurs because the code assumes that the first node in the pairing (e.g., an `Enter` node) always exists when encountering the second node (e.g., an `Exit` node). When this is not the case, `parent` is `nullptr` so dereferencing it causes a crash. The fix will be included in TensorFlow 2.7.0. We will also cherrypick this commit on TensorFlow 2.6.1, TensorFlow 2.5.2, and TensorFlow 2.4.4, as these are also affected and still in supported range.
📍 영향받는 시스템
TensorFlow 2.7.0 미만 버전 (2.6.1, 2.5.2, 2.4.4 포함)
⚔️ 공격 벡터
조작된 TensorFlow 모델 파일을 로드하여 프로그램의 Null Pointer Dereference 유도 및 서비스 거부(DoS) 발생
🛡️ 대응 방법
TensorFlow를 2.7.0 이상 버전으로 업데이트하거나, 지원되는 버전(2.6.1, 2.5.2, 2.4.4)의 보안 패치를 적용합니다.
🔧 검증 코드
출력된 버전 번호가 2.7.0 미만인지 확인하여 취약 여부를 판단합니다.
python3 -c 'import tensorflow as tf; print(tf.__version__)'