🇰🇷 한글 설명
python-cryptography 42.0.0부터 48.0.0 버전에서 중복된 셀프 서명 인증서가 포함된 잘못된 인증서 체인을 처리할 때 재귀 호출이 기하급수적으로 증가하는 문제가 발생합니다. 이로 인해 인증서 검증 시간이 급격히 늘어나 자원 고갈을 유발할 수 있으며, 이는 서비스 거부(DoS) 공격의 기반이 될 수 있습니다.
💡 쉬운 설명
인증서 검증 과정에서 똑같은 인증서가 반복되면 컴퓨터가 계산을 너무 많이 하게 되어 시스템이 느려지거나 멈출 수 있습니다. 공격자가 특수하게 조작된 인증서를 보내 서비스 운영을 방해할 수 있는 문제입니다.
🇺🇸 원문 (English)
python-cryptography is a package designed to expose cryptographic primitives and recipes to Python developers. In versions 42.0.0 through 48.0.0, when resolving invalid certificate chains that include duplicate copies of self-signed certificates, the processing recursively invokes the same candidate, leading to an exponential blowup. Although the limitation that the chain depth cannot exceed a specified maximum depth prevents unbounded recursion and guarantees termination, an attacker-controlled certificate chain can lead the processing to easily take more than 5s to reject in testing. This amplification could form the basis for a resource exhaustion denial of service attack. The core issue arises in the recursive nature of build_chain_inner, which does not de-duplicate against previously analyzed candidates. As the correctness of validation is not affected, the integrity of a system cannot be compromised through this vector, only its availability. This issue is fixed in 49.0.0.
📍 영향받는 시스템
python-cryptography versions 42.0.0 through 48.0.0
⚔️ 공격 벡터
중복된 셀프 서명 인증서가 포함된 조작된 인증서 체인을 전송하여 CPU 자원을 고갈시키는 방식
🛡️ 대응 방법
python-cryptography를 49.0.0 이상의 버전으로 업데이트하십시오.
🔧 검증 코드
출력된 버전이 42.0.0 미만이거나 49.0.0 이상이면 안전하며, 그 사이 버전이면 취약합니다.
pip show cryptography | grep Version