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
身份验证与授权漏洞分析漏洞利用Web应用程序漏洞利用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 账户接管,包含易受攻击和已修复的处理程序模拟。

查看仓库
2个月前尚未审核

CVE-2026-49757 — AshAuthentication OAuth2/OIDC 账户接管

CVE-2026-49757 的概念验证 — AshAuthentication 中的一个严重漏洞,其中 OAuth2/OIDC 回调通过电子邮件地址解析到本地用户账户,而不是 (strategy, sub) 身份对,从而允许未经身份验证的账户接管。

字段值
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 install)

使用方法

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) 查找:

  • 在 user_identities 中找不到攻击者的 sub(keycloak-attacker-fake-789)
  • on_untrusted_email_match: :reject 阻止登录
  • 攻击已被阻止

阶段 3:已修复的处理程序 — :confirm 策略

  • 攻击者尝试使用受害者的电子邮件进行 OAuth 登录
  • 系统向受害者的电子邮件发送确认令牌
  • 只有受害者确认后才会关联身份
  • 攻击已被阻止(攻击者无法控制电子邮件收件箱)

阶段 4:已修复的处理程序 — trust_email_verified? = true

  • 合法用户通过 Google 使用 email_verified: true 登录 → 自动关联成功
  • 攻击者通过 Keycloak 使用 email_verified: false 登录 → 被阻止
  • 为受信任的提供商保留便利性,为不受信任的提供商保障安全性

文件

文件描述
exploit.py主要 PoC 脚本 — 运行全部 4 个阶段
vulnerable_handler.py模拟的 OAuth 回调处理程序(存在漏洞 + 已修复)

修复方案(ash_authentication >= 4.14.0)

  1. UserResolver 模块 — 通过 (strategy, sub) 身份而非电子邮件解析用户
  2. on_untrusted_email_match 选项 — 对于未知 sub,可选 :reject(默认)、:confirm 或 :warn
  3. trust_email_verified? 选项 — 按提供商设置的标志,GitHub/Google/Auth0/Slack/Apple 默认为 true
  4. 身份唯一键 — 从 (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 — 声明稳定性
  • Hex.pm 上的 AshAuthentication

免责声明

此 PoC 仅用于教育和防御性测试目的。请仅针对您拥有或已获得明确授权测试的系统进行测试。

下载工具