🇰🇷 한글 설명
Erlang Ecosystem Foundation의 oidcc_plug 라이브러리에서 발생하는 CSRF 취약점으로, 공격자가 피해자의 브라우저를 통해 의도하지 않은 인증 흐름을 완료할 수 있습니다. 세션이 없는 콜백 요청이 들어올 경우 보안 검사를 수행하지 않고 허용하는 결함으로 인해 공격자의 계정으로 피해자가 로그인되거나 계정 탈취가 발생할 수 있습니다.
💡 쉬운 설명
로그인 과정에서 보안 확인 절차를 건너뛰는 허점이 있어, 공격자가 만든 가짜 로그인 링크를 통해 사용자가 공격자의 계정으로 로그인하게 만들 수 있습니다. 이 과정에서 사용자의 활동 정보가 공격자에게 노출되거나 사용자의 계정이 공격자의 계정과 연결될 위험이 있습니다.
🇺🇸 원문 (English)
Cross-Site Request Forgery vulnerability in Erlang Ecosystem Foundation oidcc_plug (Oidcc.Plug.AuthorizationCallback module) allows an attacker to make a victim's browser complete an authorization flow the victim never initiated.
This vulnerability is associated with program file lib/oidcc/plug/authorization_callback.ex and program routine Oidcc.Plug.AuthorizationCallback.call/2.
A callback request that carries no Oidcc.Plug.Authorize session is processed with every security check disabled rather than being rejected. call/2 substitutes permissive defaults for the absent session, and each downstream check treats its value as nothing to compare and returns :ok, so the nonce, state, PKCE, peer IP and user agent checks are all skipped. A separate clause of check_state/2 also accepts a state-less request when a verifier is present.
An attacker obtains an authorization code for their own provider account, then induces the victim to visit the callback endpoint with that code and no state parameter. The application signs the victim in as the attacker, so the victim's subsequent actions occur in the attacker's account where the attacker can read them. Applications reusing one callback for both signing in and linking a provider account are further exposed to account takeover, the attacker's account becoming linked to the victim's.
The permissive fallback serves no conforming flow. Third-party-initiated login reaches a relying party at a separate login initiation endpoint and causes it to send a fresh authentication request, and this library implements no such endpoint. Oidcc.Plug.Authorize always sends a state parameter, which an authorization server must echo, so no legitimate callback lacks one.
This issue affects oidcc_plug: from 0.2.0-beta.1 before 0.5.0.
📍 영향받는 시스템
oidcc_plug: 0.2.0-beta.1 미만 0.5.0 버전
⚔️ 공격 벡터
공격자가 자신의 인증 코드를 포함한 악성 링크를 피해자에게 클릭하도록 유도하여 인증 프로세스를 강제 실행함
🛡️ 대응 방법
oidcc_plug 라이브러리를 0.5.0 이상의 최신 버전으로 업데이트하십시오.
🔧 검증 코드
명령어 결과에 표시된 버전이 0.5.0 미만(0.2.0-beta.1 포함)이면 취약한 상태입니다.
mix deps info oidcc_plug 2>/dev/null | grep -E 'oidcc_plug.*[0-9]+\.[0-9]+\.[0-9]+'
💻 영향받는 소프트웨어
IBM WebSphere Application Server