🇰🇷 한글 설명
TensorFlow의 `tf.raw_ops.RaggedTensorToTensor` API에서 `row_partition_types`에 잘못된 인자를 전달할 경우 Null 포인터 역참조 및 정의되지 않은 동작이 발생합니다. 이는 사용자로부터 입력받은 리스트가 비어 있는지 확인하지 않고 첫 번째 요소에 접근하기 때문에 발생하는 문제입니다.
💡 쉬운 설명
머신러닝 도구인 TensorFlow에서 데이터 형식을 지정할 때 빈 목록을 보내면 프로그램이 예상치 못한 오류를 일으키며 멈추거나 오작동할 수 있습니다. 이는 프로그램이 데이터가 들어있을 것이라고 믿고 빈 상자를 열려고 시도할 때 발생하는 문제와 같습니다.
🇺🇸 원문 (English)
TensorFlow is an end-to-end open source platform for machine learning. Sending invalid argument for `row_partition_types` of `tf.raw_ops.RaggedTensorToTensor` API results in a null pointer dereference and undefined behavior. The [implementation](https://github.com/tensorflow/tensorflow/blob/47a06f40411a69c99f381495f490536972152ac0/tensorflow/core/kernels/ragged_tensor_to_tensor_op.cc#L328) accesses the first element of a user supplied list of values without validating that the provided list is not empty. We have patched the issue in GitHub commit 301ae88b331d37a2a16159b65b255f4f9eb39314. 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 포함)
⚔️ 공격 벡터
조작된 인자(빈 리스트)를 포함한 API 호출을 통해 시스템의 비정상적인 동작 유도
🛡️ 대응 방법
TensorFlow를 2.6.0 이상 버전으로 업데이트하거나 패치가 적용된 최신 마이너 버전으로 업데이트하십시오.
🔧 검증 코드
출력된 버전 번호가 2.6.0보다 낮은지 확인하여 취약 여부를 판단합니다.
python3 -c 'import tensorflow as tf; print(tf.__version__)'