Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
ash-authentication-oauth2-oidc-account-takeover-cve-2026-49757-email-based-user-matching — CVE-2026-49757에 대한 개념 증명 익스플로잇으로, AshAuthentication에서 이메일 기반 사용자 매칭을 통한 OAuth2/OIDC 계정 탈취를 시연하며, 취약한 핸들러 및 수정된 핸들러 시뮬레이션을 포함합니다. | Kitploit
도구/GitHubGitHub/hunt-benito/ash-authentication-oauth2-oidc-account-takeover-cve-2026-49757-email-based-user-matching
Authentication & AuthorizationVulnerability AnalysisExploitationWeb Application ExploitationCTFPenetration TestingAuthenticationLearning & Education

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
GitHub
hunt-benito/ash-authentication-oauth2-oidc-account-takeover-cve-2026-49757-email-based-user-matching

ash-authentication-oauth2-oidc-account-takeover-cve-2026-49757-email-based-user-matching

CVE-2026-49757에 대한 개념 증명 익스플로잇으로, AshAuthentication에서 이메일 기반 사용자 매칭을 통한 OAuth2/OIDC 계정 탈취를 시연하며, 취약한 핸들러 및 수정된 핸들러 시뮬레이션을 포함합니다.

저장소 보기
22개월 전아직 검토되지 않음

CVE-2026-49757 — AshAuthentication OAuth2/OIDC 계정 탈취

CVE-2026-49757에 대한 개념 증명 — AshAuthentication의 심각한 취약점으로, OAuth2/OIDC 콜백이 (strategy, sub) 식별자 쌍 대신 이메일 주소로 로컬 사용자 계정을 확인하여 인증되지 않은 계정 탈취를 허용합니다.

FieldValue
CVECVE-2026-49757
CVSS 4.09.2 (심각)
CWECWE-290 (스푸핑을 통한 인증 우회)
GHSAGHSA-777c-2fxx-qr28
영향 받는 버전ash_authentication >= 0.1.0, < 4.14.0 및 >= 5.0.0-rc.0, < 5.0.0-rc.10
패치된 버전4.14.0, 5.0.0-rc.10

공격 요약

  1. 피해자가 AshAuthentication을 사용하여 대상 애플리케이션에 등록합니다.
  2. 공격자가 피해자의 이메일을 사용하여 허용된 OAuth 제공자에 등록합니다.
  3. 공격자가 OAuth를 통해 로그인합니다 — 앱이 이메일로 일치시켜 피해자 계정에 대한 세션을 생성합니다.

피해자의 자격 증명이 필요하지 않습니다. 공격자는 피해자의 이메일 주소와 대상이 허용하는 모든 OAuth 제공자의 계정만 있으면 됩니다.

요구 사항

  • Python 3.8+
  • 표준 라이브러리만 필요 (pip 설치 불필요)

사용법

root@kitploit:~
# Interactive mode (recommended)
python3 exploit.py

# Non-interactive mode (piped input)
echo | python3 exploit.py

PoC가 보여주는 내용

1단계: 취약한 핸들러 (이메일 일치)

AshAuthentication의 IdentityChange.change/3를 upsert_identity: :unique_email로 시뮬레이션합니다:

  • 피해자가 [email protected]으로 등록 (역할: admin)
  • 피해자가 Google OAuth 계정 연결 (sub: google-victim-real-12345)
  • 공격자가 Keycloak에 [email protected]으로 등록 (email_verified: false)
  • 공격자가 OAuth 로그인 시작 → 앱이 이메일로 일치 → 공격자가 피해자 세션 획득

2단계: 수정된 핸들러 — :reject 정책 (기본값)

패치된 UserResolver를 (strategy, sub) 조회로 시뮬레이션합니다:

  • 공격자의 sub (keycloak-attacker-fake-789)가 user_identities에서 발견되지 않음
  • on_untrusted_email_match: :reject가 로그인 차단
  • 공격 방지됨

3단계: 수정된 핸들러 — :confirm 정책

  • 공격자가 피해자의 이메일로 OAuth 로그인 시도
  • 시스템이 피해자의 이메일로 확인 토큰 전송
  • 피해자가 확인하는 경우에만 ID 연결
  • 공격 방지됨 (공격자가 이메일 수신함을 제어하지 않음)

4단계: 수정된 핸들러 — trust_email_verified? = true

  • 정당한 사용자가 Google을 통해 email_verified: true로 로그인 → 자동 연결 성공
  • 공격자가 Keycloak을 통해 email_verified: false로 로그인 → 차단됨
  • 신뢰할 수 있는 제공자에게는 편의 유지, 신뢰할 수 없는 제공자에게는 안전 보장

파일

FileDescription
exploit.py주요 PoC 스크립트 — 4단계 모두 실행
vulnerable_handler.py시뮬레이션된 OAuth 콜백 핸들러 (취약 + 수정됨)

수정 사항 (ash_authentication >= 4.14.0)

  1. UserResolver 모듈 — 이메일 대신 (strategy, sub) ID로 사용자 확인
  2. on_untrusted_email_match 옵션 — 알 수 없는 sub에 대해 :reject (기본값), :confirm, 또는 :warn
  3. trust_email_verified? 옵션 — 제공자별 플래그, GitHub/Google/Auth0/Slack/Apple에 대해 기본값 true
  4. ID 고유 키 — (strategy, uid, user_id)에서 (strategy, uid)로 변경
  5. Upsert 제한 — 충돌 시 user_id가 절대 업데이트되지 않음
  6. 컴파일 타임 경고 — identity_resource가 없는 전략에 대해

참고 자료

  • NVD — CVE-2026-49757
  • GHSA-777c-2fxx-qr28
  • OpenID Connect Core §5.7 — Claim Stability
  • AshAuthentication on Hex.pm

면책 조항

이 PoC는 교육 및 방어적 테스트 목적으로만 제공됩니다. 소유하거나 명시적 테스트 권한이 있는 시스템에서만 테스트하십시오.

도구 다운로드