🇰🇷 한글 설명
TensorFlow의 `tf.raw_ops.UnicodeEncode` 함수에서 `input_splits` 텐서가 비어 있는지 확인하기 전에 첫 번째 차원을 읽음으로써 Null 포인터 참조가 발생할 수 있습니다. 이로 인해 공격자가 정의되지 않은 동작을 유발할 수 있는 취약점이 존재합니다.
💡 쉬운 설명
데이터를 처리하는 과정에서 빈 상자를 확인하지 않고 바로 내용물을 꺼내려다 프로그램이 오류를 일으키는 문제입니다. 이를 통해 프로그램이 예상치 못한 방식으로 작동하거나 멈출 수 있습니다.
🇺🇸 원문 (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.UnicodeEncode`. The [implementation](https://github.com/tensorflow/tensorflow/blob/460e000de3a83278fb00b61a16d161b1964f15f4/tensorflow/core/kernels/unicode_ops.cc#L533-L539) reads the first dimension of the `input_splits` tensor before validating that this tensor is not empty. We have patched the issue in GitHub commit 2e0ee46f1a47675152d3d865797a18358881d7a6. 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 포함)
⚔️ 공격 벡터
조작된 `input_splits` 텐서를 `tf.raw_ops.UnicodeEncode` 연산에 입력하여 Null 포인터 참조 유도
🛡️ 대응 방법
TensorFlow를 2.6.0 이상 버전으로 업데이트하거나, 해당 패치가 적용된 2.5.1, 2.4.3, 2.3.4 버전으로 업데이트하십시오.
🔧 검증 코드
출력된 버전 번호가 2.6.0 미만인지 확인하여 취약 여부를 판단합니다.
python3 -c 'import tensorflow as tf; print(tf.__version__)'