🇰🇷 한글 설명
Authlib 1.6.4 미만 버전에서 JWS 검증 시 RFC 7515 표준을 위반하여 알 수 없는 필수 헤더(crit)를 포함한 토큰을 허용하는 취약점이 발견되었습니다. 공격자는 이를 악용하여 다른 검증 시스템과 서로 다른 결과를 도출하는 '스플릿 브레인' 공격을 수행할 수 있으며, 결과적으로 정책 우회나 권한 상승을 유도할 수 있습니다.
💡 쉬운 설명
인증 토큰에 '반드시 확인해야 하는 중요한 정보'가 들어있음에도 불구하고, Authlib이 이를 무시하고 통과시켜버리는 문제입니다. 이로 인해 보안 검사 시스템 간의 판단이 달라져 공격자가 허가되지 않은 권한을 얻을 수 있습니다.
🇺🇸 원문 (English)
Authlib is a Python library which builds OAuth and OpenID Connect servers. Prior to version 1.6.4, Authlib’s JWS verification accepts tokens that declare unknown critical header parameters (crit), violating RFC 7515 “must‑understand” semantics. An attacker can craft a signed token with a critical header (for example, bork or cnf) that strict verifiers reject but Authlib accepts. In mixed‑language fleets, this enables split‑brain verification and can lead to policy bypass, replay, or privilege escalation. This issue has been patched in version 1.6.4.
📍 영향받는 시스템
Authlib Python library version < 1.6.4
⚔️ 공격 벡터
알 수 없는 필수 헤더(crit)가 포함된 조작된 JWS 토큰을 전송하여 검증 로직 우회
🛡️ 대응 방법
Authlib 라이브러리를 최신 버전인 1.6.4 이상으로 업데이트
🔧 검증 코드
출력된 Version 값이 1.6.4 미만이면 취약한 상태이며, 1.6.4 이상이면 안전합니다.
pip show authlib | grep Version