🇰🇷 한글 설명
pyasn1 라이브러리의 univ.Real 타입이 매우 큰 지수를 가진 ASN.1 REAL 값을 처리할 때 Python float로 변환하는 과정에서 과도한 CPU와 메모리를 사용합니다. 이로 인해 신뢰할 수 없는 ASN.1 데이터를 디코딩하고 출력, 로그 기록 또는 비교하는 애플리케이션이 중단될 수 있습니다.
💡 쉬운 설명
특수하게 조작된 아주 큰 숫자가 포함된 데이터를 처리할 때 컴퓨터가 계산을 하느라 멈춰버리는 현상입니다. 공격자가 이 데이터를 보내면 프로그램이 응답하지 않게 만들 수 있습니다.
🇺🇸 원문 (English)
pyasn1 is a generic ASN.1 library for Python. Prior to 0.6.4, the univ.Real type converted its mantissa, base, and exponent value to a Python float using exact big-integer exponentiation. A BER, CER, or DER encoded REAL value only a few bytes long can carry a very large exponent, causing float conversion through prettyPrint(), str(), comparison, arithmetic, int(), or an explicit float() call to consume excessive CPU and memory and hang applications that decode untrusted ASN.1 data and then print, log, or compare decoded objects. This issue is fixed in version 0.6.4.
📍 영향받는 시스템
pyasn1 버전 0.6.4 미만
⚔️ 공격 벡터
조작된 매우 큰 지수를 가진 BER, CER 또는 DER 인코딩된 REAL 값을 포함한 ASN.1 데이터 전송
🛡️ 대응 방법
pyasn1 라이브러리를 0.6.4 버전 이상으로 업데이트
🔧 검증 코드
출력된 버전이 0.6.4 미만이면 취약한 상태입니다.
pip show pyasn1 | grep Version