🇰🇷 한글 설명
TensorFlow의 `tf.raw_ops.Dequantize` 연산에 대한 형상 추론(shape inference) 코드에서 취약점이 발견되었습니다. 공격자가 유효하지 않은 인자를 제공할 경우, `axis` 값에 대한 검증 부재로 인해 세그멘테이션 오류(segfault)가 발생하며 서비스 거부(DoS) 상태가 될 수 있습니다.
💡 쉬운 설명
머신러닝 도구인 TensorFlow에서 잘못된 값을 입력하면 프로그램이 갑자기 멈춰버리는 문제가 있습니다. 공격자가 특수한 값을 보내 시스템을 마비시킬 수 있습니다.
🇺🇸 원문 (English)
TensorFlow is an end-to-end open source platform for machine learning. In affected versions the shape inference code for `tf.raw_ops.Dequantize` has a vulnerability that could trigger a denial of service via a segfault if an attacker provides invalid arguments. The shape inference [implementation](https://github.com/tensorflow/tensorflow/blob/460e000de3a83278fb00b61a16d161b1964f15f4/tensorflow/core/ops/array_ops.cc#L2999-L3014) uses `axis` to select between two different values for `minmax_rank` which is then used to retrieve tensor dimensions. However, code assumes that `axis` can be either `-1` or a value greater than `-1`, with no validation for the other values. We have patched the issue in GitHub commit da857cfa0fde8f79ad0afdbc94e88b5d4bbec764. 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 포함)
⚔️ 공격 벡터
유효하지 않은 `axis` 인자를 포함한 `tf.raw_ops.Dequantize` 연산 호출
🛡️ 대응 방법
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__)'