🇰🇷 한글 설명
TensorFlow에서 희소 텐서를 CSR 희소 행렬로 변환할 때 발생하는 취약점입니다. 공격자가 특정 인덱스 값을 조작하여 힙 메모리 경계를 벗어난 쓰기 작업을 유발함으로써 서비스 거부(DoS) 상태를 만들 수 있습니다.
💡 쉬운 설명
데이터를 처리하는 과정에서 계산 오류를 일으켜 프로그램이 갑자기 멈추게 만들 수 있는 결함입니다. 잘못된 숫자를 입력해 컴퓨터의 메모리 관리 규칙을 깨뜨리는 방식입니다.
🇺🇸 원문 (English)
TensorFlow is an end-to-end open source platform for machine learning. An attacker can trigger a denial of service via a `CHECK`-fail in converting sparse tensors to CSR Sparse matrices. This is because the implementation(https://github.com/tensorflow/tensorflow/blob/800346f2c03a27e182dd4fba48295f65e7790739/tensorflow/core/kernels/sparse/kernels.cc#L66) does a double redirection to access an element of an array allocated on the heap. If the value at `indices(i, 0)` is such that `indices(i, 0) + 1` is outside the bounds of `csr_row_ptr`, this results in writing outside of bounds of heap allocated data. 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 포함)
⚔️ 공격 벡터
조작된 희소 텐서(Sparse Tensor) 데이터를 입력하여 메모리 경계 외 쓰기 유발
🛡️ 대응 방법
TensorFlow를 2.5.0 이상의 최신 버전으로 업데이트하거나 해당 패치가 적용된 버전으로 업그레이드
🔧 검증 코드
출력된 버전 번호가 2.5.0 미만인 경우 해당 취약점에 노출된 상태입니다.
python3 -c 'import tensorflow as tf; print(tf.__version__)'