🇰🇷 한글 설명
Authlib 0.13부터 1.8.0 버전 사이에서 loopback HTTP 예외 처리를 위한 텍스트 접두사 비교 방식에 결함이 발견되었습니다. 공격자가 특정 URL을 제공할 경우 TLS가 필수적인 상황에서도 보안 검사를 우회하여 평문(cleartext) 리다이렉션이나 엔드포인트 수용을 유도할 수 있습니다.
💡 쉬운 설명
보안 검사 과정에서 주소를 확인하는 방식에 허점이 있어, 안전하지 않은 연결을 안전한 것으로 착각할 수 있는 문제입니다. 이를 통해 중요한 정보가 암호화되지 않은 상태로 노출될 위험이 있습니다.
🇺🇸 원문 (English)
Authlib is a Python library which builds OAuth and OpenID Connect servers. From 0.13 until 1.8.0, authlib.common.security.is_secure_transport() uses a textual prefix comparison for loopback HTTP exemptions, so a URL whose userinfo begins with a loopback host can be accepted even when its parsed host is an external non-loopback system. An external party able to supply a URL to OIDC RP-Initiated Logout registration, authorization-server metadata validation, or another call site can bypass the TLS-required guard and cause cleartext redirection or acceptance of cleartext endpoints. The issue does not bypass redirect URI exact matching and does not by itself forge tokens or authenticate users. The vulnerable authlib.common.security.is_secure_transport() implementation in authlib/common/security.py misinterprets the userinfo component before OIDC RP-Initiated Logout dynamic client registration and other consumers enforce transport security. This issue is fixed in version 1.8.0.
📍 영향받는 시스템
Authlib 0.13 ~ 1.8.0
⚔️ 공격 벡터
OIDC 로그아웃 등록이나 메타데이터 검증 시 조작된 URL을 입력하여 TLS 보안 검사를 우회함
🛡️ 대응 방법
Authlib 라이브러리를 1.8.0 버전 이상으로 업데이트하십시오.
🔧 검증 코드
출력된 버전이 1.8.0 미만(0.13 이상)인 경우 취약한 상태입니다.
pip show authlib | grep Version