Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
ash-authentication-oauth2-oidc-account-takeover-cve-2026-49757-email-based-user-matching — Exploit de preuve de concept pour CVE-2026-49757 démontrant une prise de contrôle de compte OAuth2/OIDC via la correspondance des utilisateurs par e-mail dans AshAuthentication, avec des simulations de gestionnaires vulnérable et corrigé. | Kitploit
Outils/GitHubGitHub/hunt-benito/ash-authentication-oauth2-oidc-account-takeover-cve-2026-49757-email-based-user-matching
Authentification et AutorisationAnalyse des VulnérabilitésExploitationExploitation d'Applications WebCTFTests d'IntrusionAuthentificationApprentissage et Éducation

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
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 preuve de concept pour CVE-2026-49757 démontrant une prise de contrôle de compte OAuth2/OIDC via la correspondance des utilisateurs par e-mail dans AshAuthentication, avec des simulations de gestionnaires vulnérable et corrigé.

Voir le dépôt
2il y a 2 moisPas encore vérifié
Partager

CVE-2026-49757 — AshAuthentication OAuth2/OIDC Account Takeover

Preuve de concept pour CVE-2026-49757 — une vulnérabilité critique dans AshAuthentication où les rappels OAuth2/OIDC résolvaient les comptes utilisateur locaux par adresse e-mail au lieu de la paire d'identité (strategy, sub), permettant une prise de contrôle de compte sans authentification.

ChampValeur
CVECVE-2026-49757
CVSS 4.09.2 (Critique)
CWECWE-290 (Contournement de l'authentification par usurpation)
GHSAGHSA-777c-2fxx-qr28
Affectéash_authentication >= 0.1.0, < 4.14.0 et >= 5.0.0-rc.0, < 5.0.0-rc.10
Corrigé4.14.0, 5.0.0-rc.10

Résumé de l'attaque

  1. La victime s'inscrit sur une application cible utilisant AshAuthentication
  2. L'attaquant s'inscrit auprès de n'importe quel fournisseur OAuth accepté en utilisant l'e-mail de la victime
  3. L'attaquant se connecte via OAuth — l'application fait correspondre l'e-mail et crée une session pour le compte de la victime

Aucun identifiant de la victime n'est nécessaire. L'attaquant n'a besoin que de l'adresse e-mail de la victime et d'un compte sur n'importe quel fournisseur OAuth accepté par la cible.

Prérequis

  • Python 3.8+
  • Bibliothèque standard uniquement (aucune installation pip requise)

Utilisation

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

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

Ce que démontre le PoC

Phase 1 : Gestionnaire vulnérable (correspondance par e-mail)

Simule le IdentityChange.change/3 d'AshAuthentication avec upsert_identity: :unique_email :

  • La victime s'inscrit avec [email protected] (role: admin)
  • La victime lie son compte Google OAuth (sub: google-victim-real-12345)
  • L'attaquant s'inscrit sur Keycloak avec [email protected] (email_verified: false)
  • L'attaquant initie la connexion OAuth → l'application fait correspondre l'e-mail → l'attaquant obtient la session de la victime

Phase 2 : Gestionnaire corrigé — politique :reject (par défaut)

Simule le UserResolver corrigé avec la recherche (strategy, sub) :

  • Le sub de l'attaquant (keycloak-attacker-fake-789) n'est pas trouvé dans user_identities
  • on_untrusted_email_match: :reject bloque la connexion
  • Attaque empêchée

Phase 3 : Gestionnaire corrigé — politique :confirm

  • L'attaquant tente une connexion OAuth avec l'e-mail de la victime
  • Le système envoie un jeton de confirmation à l'e-mail de la victime
  • L'identité n'est liée que si la victime confirme
  • Attaque empêchée (l'attaquant ne contrôle pas la boîte de réception e-mail)

Phase 4 : Gestionnaire corrigé — trust_email_verified? = true

  • Un utilisateur légitime se connecte via Google avec email_verified: true → la liaison automatique réussit
  • L'attaquant se connecte via Keycloak avec email_verified: false → bloqué
  • La commodité est préservée pour les fournisseurs de confiance, la sécurité pour les fournisseurs non fiables

Fichiers

FichierDescription
exploit.pyScript PoC principal — exécute les 4 phases
vulnerable_handler.pyGestionnaires de rappel OAuth simulés (vulnérable + corrigé)

Le correctif (ash_authentication >= 4.14.0)

  1. Module UserResolver — résout les utilisateurs par identité (strategy, sub) au lieu de l'e-mail
  2. Option on_untrusted_email_match — :reject (par défaut), :confirm ou :warn pour les sub inconnus
  3. Option trust_email_verified? — indicateur par fournisseur, défini par défaut à true pour GitHub/Google/Auth0/Slack/Apple
  4. Clé unique d'identité — modifiée de (strategy, uid, user_id) à (strategy, uid)
  5. Restrictions upsert — user_id n'est jamais mis à jour en cas de conflit
  6. Avertissements à la compilation — pour les stratégies sans identity_resource

Références

  • NVD — CVE-2026-49757
  • GHSA-777c-2fxx-qr28
  • OpenID Connect Core §5.7 — Stabilité des revendications
  • AshAuthentication sur Hex.pm

Avertissement

Ce PoC est destiné uniquement à des fins éducatives et de tests défensifs. Testez uniquement sur des systèmes dont vous êtes propriétaire ou pour lesquels vous disposez d'une autorisation explicite.

Télécharger l’outil