🔍 CVE-2026-115922

6.2
CVSS Score
MEDIUM
2026-10-26
2026-10-30 18:17
✅ 완료

🇰🇷 한글 설명

ONNX 1.22.0 이전 버전에서는 _unpack_2bit()과 _unpack_4bit() 함수가 공격자가 제어하는 TensorProto.dims 값에 따라 배열 크기를 조정하면서 실제 raw_data나 int32_data에 선언된 요소 수가 충분한지 검증하지 않습니다. 이로 인해 악의적으로 조작된 UINT2, INT2, UINT4, INT4, FLOAT4E2M1 텐서를 처리하면 작은 데이터가 비정상적으로 큰 메모리 할당을 유발하여 메모리 고갈이 발생할 수 있습니다. 해당 문제는 1.22.0 버전에서 수정되었습니다.

💡 쉬운 설명

ONNX는 머신러닝 모델을 주고받는 데 쓰이는 라이브러리입니다. 악성 모델 파일 하나로 프로그램이 과도한 메모리를 사용하게 만들어 서비스가 멈추도록 할 수 있습니다.

🇺🇸 원문 (English)

Open Neural Network Exchange (ONNX) is an open standard for machine learning interoperability. Prior to 1.22.0, _unpack_2bit() and _unpack_4bit() resize unpacked arrays according to attacker-controlled TensorProto.dims without verifying that raw_data or int32_data encodes the declared number of elements. Materializing an untrusted UINT2, INT2, UINT4, INT4, or FLOAT4E2M1 tensor through onnx.numpy_helper.to_array() or onnx.reference.ReferenceEvaluator can therefore expand a small packed payload into a disproportionately large allocation and exhaust memory. This issue is fixed in version 1.22.0.

📍 영향받는 시스템

ONNX 1.22.0 미만 버전을 사용하는 Python 기반 머신러닝 환경 및 해당 라이브러리를 사용하는 모든 애플리케이션

⚔️ 공격 벡터

신뢰할 수 없는 출처의 악성 ONNX 모델 파일을 to_array()나 ReferenceEvaluator로 로드하여 메모리 고갈을 유발

🛡️ 대응 방법

onnx 패키지를 1.22.0 이상으로 업그레이드 (pip install --upgrade 'onnx>=1.22.0')

🔧 검증 코드

출력된 버전이 1.22.0 미만이면 취약한 상태이므로 업그레이드가 필요하며, 1.22.0 이상이면 수정된 버전입니다.

Shell / Script
python3 -c "import onnx; print(onnx.__version__)" 2>/dev/null

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H

💻 영향받는 소프트웨어

Azure Machine Learning