Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
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.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
grafana-signup-invite-join — Grafana OSS 13.2.3 - Alta - Remoto - Unirse por invitación - SignUpStep2 se une a invitaciones de organización pendientes sin el código | Kitploit
Herramientas/GitHubGitHub/abraxas/grafana-signup-invite-join
Autenticación y AutorizaciónEscalada de PrivilegiosAnálisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebSeguridad WebPruebas de PenetraciónLabs y Práctica

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
GitHubabraxas/grafana-signup-invite-join

grafana-signup-invite-join

Grafana OSS 13.2.3 - Alta - Remoto - Unirse por invitación - SignUpStep2 se une a invitaciones de organización pendientes sin el código

Ver Repositorio
7hace 4 díasAún no revisado

Abraxas Labs - grafana-signup-invite-join

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  grafana-signup-invite-join

grafana-signup-invite-join

Clase: Privilegio residual Alcance: Remoto

Grafana OSS 13.2.3 (6193dc0) - Grafana Labs

Cuando users.allow_sign_up es true y users.verify_email_enabled permanece en el valor predeterminado false, un POST /api/user/signup/step2 no autenticado con un correo invitado crea la cuenta y applyUserInvite adjunta cada fila InvitePending para esa dirección en invite.Role. El código de invitación de 30 caracteres nunca es requerido en esta ruta. El rol puede ser Admin.

Conoce el correo invitado. Omite el código de invitación. Únete a la organización como Admin.

IDsin CVE aún
ClasePrivilegio residual
AlcanceRemoto (HTTP no autenticado; requiere users.allow_sign_up=true)
CWECWE-862
CVSSAlto: 8.1 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
ProductoGrafana OSS
Afectado13.2.3 (6193dc0); ruta de registro abierto
Authno autenticado. Verificación de correo desactivada por defecto. Registro desactivado en defaults.ini estándar.
LicenciaGNU Affero GPL v3.0
Laboratoriosolo 127.0.0.1

Qué puede hacer un atacante

Necesita la dirección invitada (el correo de invitación, una conjetura u otra filtración). No necesita el buzón y no necesita el código de invitación. No necesita una cuenta de Grafana existente.

PrivilegioMétodo / sinkReconocimiento / integridad / disponibilidadProbado en laboratorio o inferido
Crear una cuenta con el correo invitadoPOST /api/user/signup/step2 no autenticado con code=""Integridad (creación de cuenta)Probado en laboratorio. Sesión /api/user login=invitee
Unirse a la organización invitada con el rol de la invitación (Admin en este laboratorio)applyUserInvite desde GetTempUsersQuery{Email, InvitePending}Integridad (membresía de organización + rol)Probado en laboratorio. /api/user/orgs role=Admin; sqlite org_user Admin
Completar la invitación pendiente para que el invitado real no pueda usarlaupdateTempUserStatus(..., TmpUserCompleted)Integridad (consumo de invitación)Probado en laboratorio. Lista de pendientes vacía; sqlite temp status=Completed
Misma unión para invitaciones de Viewer/Editorinvite.Role se copia tal cualIntegridadInferido. El laboratorio usó Admin
Leer/escribir esa organización como Org Admin tras iniciar sesiónAPIs de Org Admin (datasources, dashboards, users)Reconocimiento + integridadInferido. El laboratorio se detiene en role=Admin
Control negativoRegistro con un correo diferente y código vacíon/aProbado en laboratorio. invite-org-role=none

Cerrado en este residual: instalación predeterminada con registro desactivado; ruta con verificación de correo activada (esa ruta comprueba form.Code); vinculación de correo en complete-invite (clase CVE-2022-39306, aún presente); Grafana Admin (isGrafanaAdmin). No es RCE no autenticado. Omitir Grafana G2 (IAM SSOSetting k8s authorizer).

Cómo lo encontré

Fijé Grafana OSS 13.2.3. El OSS predeterminado quedó vacío en este umbral. Aun así insistí en la ruta de registro abierto. POST /api/user/signup/step2 no está autenticado. SignUpStep2 crea el usuario y luego carga las invitaciones pendientes por correo. form.Code solo es requerido cuando VerifyEmailEnabled es true.

Falsos caminos ya registrados: volver a reportar CVE-2022-39306 (complete-invite aún vincula el correo); tratar el defaults.ini estándar como este residual (el registro está desactivado allí); SCIM no autenticado en OSS (cliente k8s nil); una reverse shell. Teatro.

Laboratorio

python3 grafana-signup-invite-join-Abraxas-Labs.py

o:

cd lab
./run.sh

Objetivo solo http://127.0.0.1:19350. Imagen grafana/grafana:13.2.3 con GF_USERS_ALLOW_SIGN_UP=true y verificación de correo desactivada.

SUCCESS GRAFANA-SIGNUP-INVITE-JOIN version=13.2.3 invite-org=2 invite-code-len=30 step2-code-sent=empty step2-redirect=redirect-to-select-org api-role=Admin sqlite-role=Admin temp-status=Completed control-invite-org-role=none GRAFANA-SIGNUP-INVITE-JOIN-WITNESS

La solución

Requerir el código de invitación pendiente, o prueba de buzón, antes de applyUserInvite en el registro. No adjuntar filas InvitePending solo por coincidencia de correo.

Referencias

  • github.com/grafana/grafana tag v13.2.3
  • signup.go · org_invite.go
  • Cercano (no esta ruta): CVE-2022-39306
  • CWE-862

Licencia

GNU Affero GPL v3.0. Ver LICENSE. Solo laboratorio en loopback. Sin garantía.

Descargar herramienta