Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
ash-authentication-oauth2-oidc-account-takeover-cve-2026-49757-email-based-user-matching — Exploit de prova de conceito para CVE-2026-49757 demonstrando apropriação de conta OAuth2/OIDC por meio de correspondência de usuários baseada em e-mail no AshAuthentication, com simulações de handlers vulnerável e corrigido. | Kitploit
Ferramentas/GitHubGitHub/hunt-benito/ash-authentication-oauth2-oidc-account-takeover-cve-2026-49757-email-based-user-matching
Autenticação e AutorizaçãoAnálise de VulnerabilidadesExploraçãoExploração de Aplicações WebCTFTestes de PenetraçãoAutenticaçãoAprendizado e Educação

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
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

Exploit de prova de conceito para CVE-2026-49757 demonstrando apropriação de conta OAuth2/OIDC por meio de correspondência de usuários baseada em e-mail no AshAuthentication, com simulações de handlers vulnerável e corrigido.

Ver Repositório
11há 3 mesesAinda não revisado
Compartilhar

CVE-2026-49757 — Tomada de Conta via OAuth2/OIDC no AshAuthentication

Proof of Concept para CVE-2026-49757 — uma vulnerabilidade crítica no AshAuthentication em que callbacks OAuth2/OIDC resolviam contas de usuário locais pelo endereço de e-mail em vez do par de identidade (strategy, sub), permitindo tomada de conta sem autenticação.

CampoValor
CVECVE-2026-49757
CVSS 4.09.2 (Crítico)
CWECWE-290 (Authentication Bypass by Spoofing)
GHSAGHSA-777c-2fxx-qr28
Afetadosash_authentication >= 0.1.0, < 4.14.0 e >= 5.0.0-rc.0, < 5.0.0-rc.10
Corrigido4.14.0, 5.0.0-rc.10

Resumo do Ataque

  1. A vítima se registra em um aplicativo de destino que utiliza AshAuthentication
  2. O atacante se registra em qualquer provedor OAuth aceito usando o e-mail da vítima
  3. O atacante entra via OAuth — o aplicativo faz a correspondência por e-mail e cria uma sessão para a conta da vítima

Nenhuma credencial da vítima é necessária. O atacante precisa apenas do endereço de e-mail da vítima e de uma conta em qualquer provedor OAuth aceito pelo destino.

Requisitos

  • Python 3.8+
  • Apenas biblioteca padrão (sem necessidade de pip install)

Uso

# Modo interativo (recomendado)
python3 exploit.py

# Modo não interativo (entrada via pipe)
echo | python3 exploit.py

O que o PoC Demonstra

Fase 1: Handler Vulnerável (Correspondência por E-mail)

Simula o IdentityChange.change/3 do AshAuthentication com upsert_identity: :unique_email:

  • A vítima se registra com [email protected] (função: admin)
  • A vítima vincula a conta Google OAuth (sub: google-victim-real-12345)
  • O atacante se registra no Keycloak com [email protected] (email_verified: false)
  • O atacante inicia o login OAuth → o aplicativo faz a correspondência por e-mail → o atacante obtém a sessão da vítima

Fase 2: Handler Corrigido — política :reject (padrão)

Simula o UserResolver corrigido com busca por (strategy, sub):

  • O sub do atacante (keycloak-attacker-fake-789) não é encontrado em user_identities
  • on_untrusted_email_match: :reject bloqueia o login
  • Ataque impedido

Fase 3: Handler Corrigido — política :confirm

  • O atacante tenta o login OAuth com o e-mail da vítima
  • O sistema envia um token de confirmação para o e-mail da vítima
  • A identidade só é vinculada se a vítima confirmar
  • Ataque impedido (o atacante não controla a caixa de entrada do e-mail)

Fase 4: Handler Corrigido — trust_email_verified? = true

  • Um usuário legítimo entra via Google com email_verified: true → o vínculo automático é bem-sucedido
  • O atacante entra via Keycloak com email_verified: false → bloqueado
  • Conveniência preservada para provedores confiáveis, segurança para os não confiáveis

Arquivos

ArquivoDescrição
exploit.pyScript principal do PoC — executa as 4 fases
vulnerable_handler.pyHandlers de callback OAuth simulados (vulnerável + corrigido)

A Correção (ash_authentication >= 4.14.0)

  1. Módulo UserResolver — resolve usuários pela identidade (strategy, sub) em vez do e-mail
  2. Opção on_untrusted_email_match — :reject (padrão), :confirm ou :warn para subs desconhecidos
  3. Opção trust_email_verified? — flag por provedor, padrão true para GitHub/Google/Auth0/Slack/Apple
  4. Chave única de identidade — alterada de (strategy, uid, user_id) para (strategy, uid)
  5. Restrições de upsert — user_id nunca é atualizado em conflito
  6. Avisos em tempo de compilação — para estratégias sem identity_resource

Referências

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

Aviso Legal

Este PoC destina-se apenas a fins educacionais e de testes defensivos. Teste apenas contra sistemas que você possui ou para os quais tenha autorização explícita para testar.

Baixar ferramenta