🇰🇷 한글 설명
TensorFlow의 `tf.raw_ops.MaxPool3DGradGrad` 구현에서 힙 버퍼 오버플로우 취약점이 발견되었습니다. `Pool3dParameters` 초기화 과정에서 오류 발생 시 검증 절차가 누락되어 잘못된 데이터가 포함될 수 있으며, 이로 인해 메모리 오버플로우가 발생할 수 있습니다.
💡 쉬운 설명
머신러닝 도구인 TensorFlow의 특정 기능에서 데이터를 처리할 때 메모리 공간을 넘어서는 오류가 발생할 수 있습니다. 이로 인해 프로그램이 비정상적으로 종료되거나 보안 문제가 생길 수 있습니다.
🇺🇸 원문 (English)
TensorFlow is an end-to-end open source platform for machine learning. The implementation of `tf.raw_ops.MaxPool3DGradGrad` is vulnerable to a heap buffer overflow. The implementation(https://github.com/tensorflow/tensorflow/blob/596c05a159b6fbb9e39ca10b3f7753b7244fa1e9/tensorflow/core/kernels/pooling_ops_3d.cc#L694-L696) does not check that the initialization of `Pool3dParameters` completes successfully. Since the constructor(https://github.com/tensorflow/tensorflow/blob/596c05a159b6fbb9e39ca10b3f7753b7244fa1e9/tensorflow/core/kernels/pooling_ops_3d.cc#L48-L88) uses `OP_REQUIRES` to validate conditions, the first assertion that fails interrupts the initialization of `params`, making it contain invalid data. In turn, this might cause a heap buffer overflow, depending on default initialized values. 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 포함)
⚔️ 공격 벡터
조작된 입력 데이터를 사용하여 `MaxPool3DGradGrad` 연산을 수행함으로써 메모리 오버플로우 유도
🛡️ 대응 방법
TensorFlow를 2.5.0 이상의 최신 버전으로 업데이트하거나 해당 보안 패치가 적용된 버전으로 업그레이드
🔧 검증 코드
출력된 버전이 2.5.0 미만인 경우 해당 취약점에 노출된 상태입니다.
pip show tensorflow | grep Version