🇰🇷 한글 설명
pyasn1 0.6.3 이전 버전의 ASN.1 데이터 디코딩 시 무제한 재귀로 인한 서비스 거부 취약점입니다. 중첩된 SEQUENCE/SET 태그를 포함한 조작된 페이로드로 인해 파이썬 해석기가 RecursionError 또는 메모리 부족으로 충돌합니다.
💡 쉬운 설명
pyasn1 라이브러리가 매우 깊게 중첩된 데이터를 처리할 때 무한 반복되어 프로그램이 멈춘다는 뜻입니다. 공격자가 특수한 데이터를 보내면 애플리케이션이 응답하지 않거나 충돌할 수 있습니다.
🇺🇸 원문 (English)
pyasn1 is a generic ASN.1 library for Python. Prior to 0.6.3, the `pyasn1` library is vulnerable to a Denial of Service (DoS) attack caused by uncontrolled recursion when decoding ASN.1 data with deeply nested structures. An attacker can supply a crafted payload containing thousands of nested `SEQUENCE` (`0x30`) or `SET` (`0x31`) tags with "Indefinite Length" (`0x80`) markers. This forces the decoder to recursively call itself until the Python interpreter crashes with a `RecursionError` or consumes all available memory (OOM), crashing the host application. This is a distinct vulnerability from CVE-2026-23490 (which addressed integer overflows in OID decoding). The fix for CVE-2026-23490 (`MAX_OID_ARC_CONTINUATION_OCTETS`) does not mitigate this recursion issue. Version 0.6.3 fixes this specific issue.
📍 영향받는 시스템
pyasn1 < 0.6.3 (모든 0.6.3 이전 버전)
⚔️ 공격 벡터
무제한 중첩 ASN.1 SEQUENCE(0x30) 또는 SET(0x31) 구조와 Indefinite Length(0x80) 마커를 포함한 조작된 바이너리 페이로드 전송
🛡️ 대응 방법
pyasn1을 0.6.3 이상으로 즉시 업그레이드 (pip install --upgrade pyasn1>=0.6.3)
🔧 검증 코드
출력된 버전이 0.6.3 이상이면 안전하고, 0.6.3 미만이면 취약합니다.
python3 -c "import pyasn1; print(pyasn1.__version__)" 2>/dev/null || pip show pyasn1 | grep Version