🔍 CVE-2026-13089

7.5
CVSS Score
HIGH
2026-07-22
2026-10-24 13:10
✅ 완료

🇰🇷 한글 설명

Perl의 OIDC::Lite 0.12.1 이하 버전에서 ID 토큰의 서명 검증을 우회할 수 있는 취약점이 발견되었습니다. 공격자가 토큰 헤더의 알고리즘(alg) 값을 조작하여 서명 검증 없이 토큰을 통과시키거나, RSA 공개 키를 HMAC 비밀키로 오용하게 만드는 RS/HS 혼동 공격이 가능합니다.

💡 쉬운 설명

로그인 인증에 사용되는 토큰의 검증 방식이 허술하여, 공격자가 가짜 신분증을 만들어 마치 다른 사용자인 것처럼 로그인할 수 있는 보안 결함입니다. 토큰에 적힌 알고리즘 정보를 그대로 믿어버리기 때문에 발생하는 문제입니다.

🇺🇸 원문 (English)

OIDC::Lite versions through 0.12.1 for Perl allow ID Token signature verification bypass via a token-controlled algorithm allowlist in verify. When the caller does not pin an algorithm, OIDC::Lite::Model::IDToken::verify sets $self->alg($self->header->{alg}) from the token's own header and then calls decode_jwt(token, key, 1, [$self->alg]), handing JSON::WebToken an accepted-algorithm allowlist taken from the untrusted token. A token with alg=none yields ['none'], so decode_jwt returns the claims with no signature check, and a token with alg=HS256 is verified with the RP's RSA public key as the HMAC secret (RS to HS confusion). The ID Token is the OpenID Connect authentication assertion delivered to the Relying Party. Any caller that verifies an ID Token through the unpinned load(token)->verify path, or load(token, key) with only the key pinned, accepts a forged token carrying attacker-chosen claims such as sub and is authenticated as any user. Passing an explicit algorithm so $self->alg is already set bypasses the header-derived allowlist and is not affected. Note that the latest version uploaded to CPAN is 0.10. Later versions are available in the git repository.

📍 영향받는 시스템

OIDC::Lite versions through 0.12.1

⚔️ 공격 벡터

조작된 alg 헤더(alg=none 또는 alg=HS256)를 포함한 ID 토큰을 전송하여 서명 검증을 우회함

🛡️ 대응 방법

OIDC::Lite를 최신 버전(Git 저장소 버전 권장)으로 업데이트하거나, 검증 시 알고리즘을 명시적으로 고정(pinning)하여 사용해야 함

🔧 검증 코드

출력된 버전 번호가 0.12.1 이하이면 취약한 상태입니다.

Shell / Script
perl -MModule::Load -e 'eval "use OIDC::Lite; 1" or die "Not installed"; print $OIDC::Lite::VERSION . "\n"'

📊 CVSS Vector String

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

💻 영향받는 소프트웨어

Git