🔍 CVE-2026-25221

0.0
CVSS Score
UNKNOWN
2026-02-02
2026-02-03 16:44
✅ 완료

🇰🇷 한글 설명

PolarLearn은 무료 오픈소스 학습 프로그램입니다. 0-PRERELEASE-15 버전 및 이전 버전에서 GitHub 및 Google 로그인 공급자의 OAuth 2.0 구현에는 로그인 크로스 사이트 요청 위조(CSRF) 취약점이 있습니다. 이 취약점으로 인해 공격자는 세션을 사전 인증하고 피해자를 공격자의 계정으로 로그인하도록 속일 수 있습니다. 피해자가 이후에 입력하는 모든 데이터 또는 학습 진행 상황은 공격자의 계정에 저장되어 데이터 손실 및 정보 누출이 발생할 수 있습니다.

💡 쉬운 설명

PolarLearn의 로그인 기능에 취약점이 있어 공격자가 피해자의 계정 정보를 탈취할 수 있습니다. 이는 공격자가 피해자를 공격자의 계정으로 로그인하도록 속일 수 있습니다. 따라서 피해자의 데이터가 공격자에게 노출될 수 있습니다.

🇺🇸 원문 (English)

PolarLearn is a free and open-source learning program. In 0-PRERELEASE-15 and earlier, the OAuth 2.0 implementation for GitHub and Google login providers is vulnerable to Login Cross-Site Request Forgery (CSRF). The application fails to implement and verify the state parameter during the authentication flow. This allows an attacker to pre-authenticate a session and trick a victim into logging into the attacker's account. Any data the victim then enters or academic progress they make is stored on the attacker's account, leading to data loss for the victim and information disclosure to the attacker.

📍 영향받는 시스템

PolarLearn 0-PRERELEASE-15 버전 및 이전 버전

⚔️ 공격 벡터

로그인 크로스 사이트 요청 위조(CSRF) 공격

🛡️ 대응 방법

최신 버전의 PolarLearn으로 업그레이드하고, OAuth 2.0 구현에서 상태 매개변수를 구현하고 검증합니다.

🔧 검증 코드

로컬에서 Python을 실행하고, PolarLearn의 로그인 페이지에 대한 GET 요청을 보내 상태 매개변수가 포함되어 있는지 확인합니다. 상태 매개변수가 없으면 취약하다는 결과가 출력됩니다.

Shell / Script
python -c "import requests; response = requests.get('https://example.com/login'); if 'state' not in response.url: print('{{"result": "취약", "reason": "상태 매개변수가 없습니다."}}'); else: print('{{"result": "양호", "reason": "상태 매개변수가 있습니다."}}')"

💻 영향받는 소프트웨어

Git