🇰🇷 한글 설명
python-jose 3.3.0 이하 버전에서 'alg=none' 파라미터가 있는 JWT 토큰이 암호화 서명 검증 없이 수락될 수 있습니다. 공격자가 위조된 토큰을 생성하여 인증을 우회하고 권한 상향식 공격이나 무단 접근을 수행할 수 있습니다.
💡 쉬운 설명
JWT 토큰의 서명을 확인하지 않아서 누구나 가짜 토큰을 만들 수 있습니다. 이를 통해 관리자 권한을 얻거나 다른 사람의 계정으로 접근할 수 있습니다.
🇺🇸 원문 (English)
python-jose thru 3.3.0 allows JWT tokens with 'alg=none' to be decoded and accepted without any cryptographic signature verification. A malicious actor can craft a forged token with arbitrary claims (e.g., is_admin=true) and bypass authentication checks, leading to privilege escalation or unauthorized access in applications that rely on python-jose for token validation. This issue is exploitable unless developers explicitly reject 'alg=none' tokens, which is not enforced by the library. NOTE: all parties agree that the issue is not relevant because it only occurs in a "verify_signature": False situation.
📍 영향받는 시스템
python-jose 3.3.0 이하 버전 (verify_signature=False로 명시 설정된 경우만 해당)
⚔️ 공격 벡터
JWT 토큰을 'alg=none'으로 설정하여 서명 검증을 우회하고 위조된 claims 삽입
🛡️ 대응 방법
python-jose를 최신 버전으로 업그레이드하거나 verify_signature를 항상 True로 설정
🔧 검증 코드
python-jose 버전이 3.3.0 초과인지 확인. 3.3.0 이하면 취약함.
pip show python-jose 2>/dev/null | grep Version | awk '{print $NF}'