🔍 CVE-2022-31027

4.2
CVSS Score
MEDIUM
2022-06-09
2026-06-17 04:44
✅ 완료

🇰🇷 한글 설명

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 기반으로 변경)을 적용

🔧 검증 코드

출력된 버전이 취약점이 해결된 패치 버전인지 공식 문서와 대조하여 확인

Shell / Script
pip show OAuthenticator | grep Version

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:L/A:N

💻 영향받는 소프트웨어

IBM Verify Identity Access