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
認証と認可脆弱性分析エクスプロイトウェブアプリケーション悪用CTFペネトレーションテスト認証学習と教育

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有
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) の識別子ペアではなく メールアドレス でローカルユーザーアカウントを解決するため、認証されていないアカウント乗っ取りが可能になります。

フィールド値
CVECVE-2026-49757
CVSS 4.09.2 (Critical)
CWECWE-290 (Authentication Bypass by Spoofing)
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 install は不要)

使用方法

root@kitploit:~
# 対話モード(推奨)
python3 exploit.py

# 非対話モード(パイプ入力)
echo | python3 exploit.py

PoC が示すもの

フェーズ 1: 脆弱なハンドラー(メールアドレス照合)

upsert_identity: :unique_email を使用した AshAuthentication の IdentityChange.change/3 をシミュレートします:

  • 被害者が [email protected](ロール: admin)で登録
  • 被害者が Google OAuth アカウントをリンク(sub: google-victim-real-12345)
  • 攻撃者が Keycloak に [email protected](email_verified: false)で登録
  • 攻撃者が OAuth ログインを開始 → アプリがメールアドレスで照合 → 攻撃者が被害者のセッションを取得

フェーズ 2: 修正済みハンドラー — :reject ポリシー(デフォルト)

(strategy, sub) での検索を使用するパッチ適用済み UserResolver をシミュレートします:

  • 攻撃者の sub(keycloak-attacker-fake-789)が user_identities に見つからない
  • on_untrusted_email_match: :reject がログインをブロック
  • 攻撃防止

フェーズ 3: 修正済みハンドラー — :confirm ポリシー

  • 攻撃者が被害者のメールアドレスで OAuth ログインを試行
  • システムが確認トークンを 被害者の メールアドレスに送信
  • 被害者が確認した場合のみ ID がリンクされる
  • 攻撃防止(攻撃者はメール受信箱を制御できない)

フェーズ 4: 修正済みハンドラー — trust_email_verified? = true

  • 正当なユーザーが email_verified: true で Google 経由でサインイン → 自動リンク成功
  • 攻撃者が email_verified: false で Keycloak 経由でサインイン → ブロック
  • 信頼できるプロバイダーには利便性を維持し、信頼できないプロバイダーには安全性を確保

ファイル

ファイル説明
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 は教育および防御テスト目的のみです。自分が所有するシステム、または明示的なテスト許可を得たシステムに対してのみテストしてください。

ツールをダウンロード