🇰🇷 한글 설명
PyJWT 2.14.0 미만 버전에서 is_pem_format 함수가 PEM 형식을 검사할 때 정규 표현식의 과도한 백트래킹이 발생합니다. 공격자가 종료 마커가 없는 반복적인 BEGIN 마커를 포함한 입력을 제공할 경우, CPU 사용량이 급증하여 서비스 거부(DoS) 상태를 유발할 수 있습니다.
💡 쉬운 설명
특정한 패턴의 잘못된 데이터를 입력하면 프로그램이 이를 처리하느라 컴퓨터의 두뇌(CPU)를 과도하게 사용하여 시스템이 느려지거나 멈출 수 있습니다. 이는 마치 끝이 없는 미로를 찾으려다 길을 잃고 계속 제자리를 맴도는 것과 같습니다.
🇺🇸 원문 (English)
PyJWT is a Python implementation of JSON Web Token standards. Prior to 2.14.0, PyJWT is_pem_format is affected because lazy PEM regular expression backtracks extensively. This occurs when a certificate-like input contains repeated BEGIN markers without a matching END marker. As a result, is_pem_format performs unbounded backtracking while searching for a PEM end marker. Consequently, an attacker can cause intensive CPU consumption. This issue is fixed in version 2.14.0.
📍 영향받는 시스템
PyJWT versions prior to 2.14.0
⚔️ 공격 벡터
인증서 형식의 입력값에 종료 마커가 없는 반복적인 BEGIN 마커를 포함시켜 전송
🛡️ 대응 방법
PyJWT 라이브러리를 2.14.0 버전 이상으로 업데이트
🔧 검증 코드
출력된 버전 번호가 2.14.0보다 낮은지 확인
pip show PyJWT | grep Version