🇰🇷 한글 설명
OAuthenticator의 CILogonOAuthenticator 구성 요소에서 인증 검증 로직의 결함이 발견되었습니다. 기존에는 이메일 도메인만 확인하여 인증을 허용했으나, 이로 인해 허용되지 않은 인증 제공자(예: GitHub)를 통해 해당 도메인 이메일을 사용하는 사용자가 우회 접속할 수 있는 취약점이 존재합니다.
💡 쉬운 설명
특정 대학교 이메일만 가진 사람을 허용하도록 설정되어 있지만, 실제로는 이메일 주소만 그 대학교 것이라면 누구나 로그인이 가능한 보안 허점이 있습니다. 즉, 학교 계정이 아닌 개인 계정으로도 학교 이메일 주소만 등록되어 있다면 시스템에 접속할 수 있습니다.
🇺🇸 원문 (English)
OAuthenticator is an OAuth token library for the JupyerHub login handler. CILogonOAuthenticator is provided by the OAuthenticator package, and lets users log in to a JupyterHub via CILogon. This is primarily used to restrict a JupyterHub only to users of a given institute. The allowed_idps configuration trait of CILogonOAuthenticator is documented to be a list of domains that indicate the institutions whose users are authorized to access this JupyterHub. This authorization is validated by ensuring that the *email* field provided to us by CILogon has a *domain* that matches one of the domains listed in `allowed_idps`.If `allowed_idps` contains `berkeley.edu`, you might expect only users with valid current credentials provided by University of California, Berkeley to be able to access the JupyterHub. However, CILogonOAuthenticator does *not* verify which provider is used by the user to login, only the email address provided. So a user can login with a GitHub account that has email set to `<something>@berkeley.edu`, and that will be treated exactly the same as someone logging in using the UC Berkeley official Identity Provider. The patch fixing this issue makes a *breaking change* in how `allowed_idps` is interpreted. It's no longer a list of domains, but configuration representing the `EntityID` of the IdPs that are allowed, picked from the [list maintained by CILogon](https://cilogon.org/idplist/). Users are advised to upgrade.
📍 영향받는 시스템
OAuthenticator (CILogonOAuthenticator 사용 시)
⚔️ 공격 벡터
공격자가 허용된 도메인의 이메일을 사용하는 외부 인증 제공자(예: GitHub)를 통해 인증을 우회하여 접속
🛡️ 대응 방법
OAuthenticator를 최신 버전으로 업데이트하여 allowed_idps 설정 방식(도메인 기반에서 EntityID 기반으로 변경)을 적용
🔧 검증 코드
출력된 버전이 취약점이 해결된 패치 버전인지 공식 문서와 대조하여 확인
pip show OAuthenticator | grep Version
📊 CVSS Vector String
CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:L/A:N
💻 영향받는 소프트웨어
IBM Verify Identity Access