🇰🇷 한글 설명
Logto 1.31.0부터 1.42.0 버전 사이의 Account API 핸들러에서 권한 검증 미흡으로 인해 발생하는 취약점입니다. openid 권한만 가진 사용자가 특정 API를 호출하여 소셜 또는 기업 SSO 제공자의 액세스 토큰을 탈취할 수 있습니다. 이로 인해 공격자는 탈취한 토큰을 사용하여 상위 API에 접근할 수 있습니다.
💡 쉬운 설명
로그인 권한만 있는 사용자가 원래는 볼 수 없는 다른 서비스(구글, 기업 로그인 등)의 비밀 열쇠를 몰래 가져갈 수 있는 문제입니다. 이 열쇠를 이용하면 공격자가 사용자인 척하며 다른 서비스에 접근할 위험이 있습니다.
🇺🇸 원문 (English)
Logto is the modern, open-source auth infrastructure for SaaS and AI apps. From 1.31.0 until 1.42.0, the Account API handlers in packages/core/src/routes/account/third-party-tokens.ts allow a caller holding a same-user access token with only the openid scope to retrieve stored social or enterprise SSO provider access tokens through GET /api/my-account/identities/{target}/access-token or GET /api/my-account/sso-identities/{connectorId}/access-token. The handlers authenticate the user but do not require the identities scope that protects neighboring identity-detail operations, bypassing the intended Account API consent boundary. Exploitation requires federated token-set storage to be enabled and the affected user to have authenticated through a supported connector. A low-trust application can use the disclosed provider token against upstream APIs within that token's granted scopes. This issue is fixed in version 1.42.0.
📍 영향받는 시스템
Logto version 1.31.0 ~ 1.42.0
⚔️ 공격 벡터
openid 권한만 가진 액세스 토큰을 사용하여 특정 API 엔드포인트(GET /api/my-account/...)를 호출하여 토큰 탈취
🛡️ 대응 방법
Logto를 최신 보안 패치가 적용된 버전인 1.42.0 이상으로 업데이트하십시오.
🔧 검증 코드
출력된 Logto의 버전이 1.42.0 미만인지 확인하십시오.
npm list logto || dpkg -l | grep logto