🇰🇷 한글 설명
Casdoor 2.362.0 및 이전 버전에서 SAML 어설션에 대한 재전송 방지 기능이 누락되어 있습니다. ParseSamlResponse() 함수가 어설션 ID 캐싱이나 OneTimeUse 조건 확인 없이 세션을 생성하므로, 공격자가 캡처된 어설션을 재사용하여 인증을 우회할 수 있습니다.
💡 쉬운 설명
한 번 사용된 로그인 인증 정보를 공격자가 가로채서 다시 사용할 수 있는 보안 결함입니다. 이를 통해 공격자는 사용자의 비밀번호나 2단계 인증 없이도 관리자 계정으로 로그인할 수 있습니다.
🇺🇸 원문 (English)
Casdoor versions 2.362.0 and earlier map SAML assertions to user sessions without replay protection. The ParseSamlResponse() function in object/saml_sp.go calls sp.RetrieveAssertionInfo() and immediately maps the result to a user session. There is no assertion ID cache, OneTimeUse condition enforcement, or replay detection anywhere in the SAML SP code path. As a result, an attacker can replay a previously captured SAML assertion to obtain an authenticated session for the assertion’s subject, including administrator accounts, without needing the user’s password or MFA credentials.
📍 영향받는 시스템
Casdoor versions 2.362.0 and earlier
⚔️ 공격 벡터
이전에 캡처된 유효한 SAML 어설션을 재전송하여 인증된 세션 탈취
🛡️ 대응 방법
Casdoor를 최신 보안 패치가 적용된 버전으로 업데이트하고 SAML 재전송 방지 로직을 적용하십시오.
🔧 검증 코드
명령어 결과에 취약한 버전 번호가 출력되면 해당 시스템은 공격에 노출된 상태입니다.
curl -s http://<target-ip>/version | grep -E '2.362.0|2.361.0|2.360.0'