🇰🇷 한글 설명
TensorFlow에서 텐서의 총 요소 수가 int64_t 범위를 초과할 경우 MultiplyWithoutOverflow 함수가 음수 값을 반환하여 시스템 체크 실패를 유발할 수 있습니다. 이로 인해 프로그램이 비정상적으로 종료될 수 있는 취약점입니다. 해당 문제는 TensorFlow 2.7.0 버전에서 수정되었습니다.
💡 쉬운 설명
데이터의 크기를 계산하는 과정에서 숫자가 너무 커져서 컴퓨터가 계산 오류를 일으키는 문제입니다. 이 오류가 발생하면 인공지능 학습 프로그램이 갑자기 멈춰버릴 수 있습니다.
🇺🇸 원문 (English)
TensorFlow is an open source platform for machine learning. In affected versions TensorFlow allows tensor to have a large number of dimensions and each dimension can be as large as desired. However, the total number of elements in a tensor must fit within an `int64_t`. If an overflow occurs, `MultiplyWithoutOverflow` would return a negative result. In the majority of TensorFlow codebase this then results in a `CHECK`-failure. Newer constructs exist which return a `Status` instead of crashing the binary. This is similar to CVE-2021-29584. 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를 2.7.0 이상의 최신 버전으로 업데이트하거나, 지원되는 버전(2.6.1, 2.5.2, 2.4.4)의 보안 패치를 적용함
🔧 검증 코드
출력된 버전 번호가 2.7.0보다 낮은지 확인하여 취약 여부를 판단함
python3 -c 'import tensorflow as tf; print(tf.__version__)'