🇰🇷 한글 설명
Lemonldap::NG::Portal의 특정 버전에서 OAuth2 토큰 검사 시 공개 Relying Party의 클라이언트 비밀번호를 검증하지 않는 취약점이 발견되었습니다. 공격자는 유효한 액세스 토큰과 클라이언트 ID만 있으면 인증 없이 토큰의 메타데이터를 조회하고 사용자 식별 정보를 탈취할 수 있습니다.
💡 쉬운 설명
로그인 정보를 확인하는 과정에서 비밀번호를 제대로 확인하지 않는 보안 구멍이 발견되었습니다. 이를 통해 해커가 다른 사용자의 정보나 토큰의 상세 내용을 몰래 훔쳐볼 수 있습니다.
🇺🇸 원문 (English)
Lemonldap::NG::Portal versions from 2.20.0 before 2.21.6, from 2.22.0 before 2.23.4 for Perl allow unauthenticated OAuth2 token introspection because checkEndPointAuthenticationCredentials does not verify the client secret of a public Relying Party.
checkEndPointAuthenticationCredentials() skips the secret comparison for a Relying Party marked public and still returns the authentication method deduced from the request, client_secret_basic or client_secret_post. introspection() rejects a caller only when that method is missing or none, so a request carrying a public client_id and an arbitrary or empty secret passes the endpoint's authentication check.
An attacker who holds an access token and knows the client_id of any public Relying Party can confirm the token is active and read its metadata, including scope, audience, expiry and the sub claim. The sub claim is computed with the calling Relying Party's user identifier attribute, so an attacker can translate a user identifier from one Relying Party to another, defeating per-client and pseudonymous identifiers.
📍 영향받는 시스템
Lemonldap::NG::Portal 2.20.0 ~ 2.21.5, 2.22.0 ~ 2.23.3 (Perl 기반)
⚔️ 공격 벡터
공개된 클라이언트 ID와 임의의 비밀번호를 사용하여 OAuth2 토큰 검사 엔드포인트에 접근
🛡️ 대응 방법
Lemonldap::NG::Portal을 2.21.6 또는 2.23.4 이상의 최신 버전으로 업데이트하십시오.
🔧 검증 코드
출력된 버전 번호가 2.21.6 미만이거나 2.22.0 이상 2.23.4 미만이면 취약한 상태입니다.
perl -MLemonldap::NG::Portal -e 'print $Lemonldap::NG::Portal::VERSION . "\n"'
📊 CVSS Vector String
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
💻 영향받는 소프트웨어
IBM Security Verify Access