🇰🇷 한글 설명
PyJWT 2.14.0 미만 버전에서 서명 세그먼트 디코딩 시 표준 Base64URL 범위를 벗어난 문자를 허용하는 취약점이 발견되었습니다. 이로 인해 서로 다른 직렬화된 세그먼트가 동일한 서명 바이트를 생성할 수 있으며, 결과적으로 토큰 폐기 확인 절차를 우회할 수 있습니다.
💡 쉬운 설명
토큰의 서명 부분에 허용되지 않는 문자를 덧붙여도 시스템이 이를 정상적인 토큰으로 오해할 수 있는 문제입니다. 이로 인해 차단된 토큰이 여전히 유효한 것처럼 작동하여 보안 검사를 통과할 위험이 있습니다.
🇺🇸 원문 (English)
PyJWT is a Python implementation of JSON Web Token standards. Prior to 2.14.0, PyJWT signature segment is affected because signature segment decoding accepts characters outside the canonical Base64URL representation. This occurs when non-Base64URL characters are appended to a valid compact JWS signature segment. As a result, base64url_decode produces the same signature bytes for different serialized segments. Consequently, raw-token revocation checks can fail to recognize an equivalent modified token. This issue is fixed in version 2.14.0.
📍 영향받는 시스템
PyJWT 2.14.0 미만 버전
⚔️ 공격 벡터
유효한 JWS 서명 세그먼트 끝에 비표준 문자를 추가하여 토큰 폐기 검사를 우회하는 방식
🛡️ 대응 방법
PyJWT 라이브러리를 2.14.0 이상의 최신 버전으로 업데이트
🔧 검증 코드
출력된 버전 번호가 2.14.0보다 낮은지 확인
pip show PyJWT | grep Version