🇰🇷 한글 설명
Authlib 1.6.5 미만 버전의 JOSE 구현체에서 JWS/JWT 헤더 및 서명 세그먼트의 크기 제한이 없어 발생하는 취약점입니다. 공격자가 수백 메가바이트 크기의 조작된 토큰을 전송할 경우, 검증 과정에서 과도한 CPU와 메모리 사용을 유발하여 서비스 거부(DoS) 상태를 일으킬 수 있습니다.
💡 쉬운 설명
인증용 토큰의 크기를 제한하지 않아, 아주 큰 가짜 토큰을 보내 서버를 마비시키는 공격입니다. 서버가 이 거대한 데이터를 처리하려다 메모리와 CPU를 모두 써버려 서비스가 멈추게 됩니다.
🇺🇸 원문 (English)
Authlib is a Python library which builds OAuth and OpenID Connect servers. Prior to version 1.6.5, Authlib’s JOSE implementation accepts unbounded JWS/JWT header and signature segments. A remote attacker can craft a token whose base64url‑encoded header or signature spans hundreds of megabytes. During verification, Authlib decodes and parses the full input before it is rejected, driving CPU and memory consumption to hostile levels and enabling denial of service. Version 1.6.5 patches the issue. Some temporary workarounds are available. Enforce input size limits before handing tokens to Authlib and/or use application-level throttling to reduce amplification risk.
📍 영향받는 시스템
Authlib Python library versions prior to 1.6.5
⚔️ 공격 벡터
Remote attacker sends a specially crafted, extremely large base64url-encoded JWS/JWT token.
🛡️ 대응 방법
Update Authlib to version 1.6.5 or later, or enforce input size limits on tokens before processing.
🔧 검증 코드
출력된 버전이 1.6.5 미만이면 해당 취약점에 노출된 상태입니다.
pip show authlib | grep Version