🇰🇷 한글 설명
TensorFlow의 `tf.raw_ops.RaggedTensorToVariant` 연산에서 splits 값이 비어 있는 경우에 대한 검증이 누락되어 발생합니다. 공격자가 이를 악용하여 null 포인터에 참조를 바인딩함으로써 정의되지 않은 동작을 유발할 수 있습니다.
💡 쉬운 설명
머신러닝 도구인 TensorFlow에서 데이터 형식을 변환할 때 특정 값이 비어 있으면 프로그램이 예상치 못한 오류를 일으킬 수 있는 결함입니다. 이를 통해 시스템이 비정상적으로 작동하거나 중단될 위험이 있습니다.
🇺🇸 원문 (English)
TensorFlow is an end-to-end open source platform for machine learning. In affected versions an attacker can cause undefined behavior via binding a reference to null pointer in `tf.raw_ops.RaggedTensorToVariant`. The [implementation](https://github.com/tensorflow/tensorflow/blob/460e000de3a83278fb00b61a16d161b1964f15f4/tensorflow/core/kernels/ragged_tensor_to_variant_op.cc#L129) has an incomplete validation of the splits values, missing the case when the argument would be empty. We have patched the issue in GitHub commit be7a4de6adfbd303ce08be4332554dff70362612. The fix will be included in TensorFlow 2.6.0. We will also cherrypick this commit on TensorFlow 2.5.1, TensorFlow 2.4.3, and TensorFlow 2.3.4, as these are also affected and still in supported range.
📍 영향받는 시스템
TensorFlow 2.6.0 미만 버전 (2.5.1, 2.4.3, 2.3.4 포함)
⚔️ 공격 벡터
조작된 RaggedTensor 데이터를 입력하여 null 포인터 참조를 유도하는 방식
🛡️ 대응 방법
TensorFlow를 2.6.0 이상 버전으로 업데이트하거나, 지원되는 버전(2.5.1, 2.4.3, 2.3.4)의 보안 패치를 적용하십시오.
🔧 검증 코드
출력된 버전 번호가 2.6.0보다 낮거나 패치된 특정 버전(2.5.1, 2.4.3, 2.3.4)보다 낮은지 확인합니다.
python3 -c 'import tensorflow as tf; print(tf.__version__)'