Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
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é.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
grafana-signup-invite-join — Grafana OSS 13.2.3 - Élevé - À distance - Rejoindre sur invitation - SignUpStep2 rejoint les invitations d'organisation en attente sans le code | Kitploit
Outils/GitHubGitHub/abraxas/grafana-signup-invite-join
Authentification et AutorisationEscalade de PrivilègesAnalyse des VulnérabilitésExploitationExploitation d'Applications WebSécurité WebTests d'IntrusionLabs et Pratique

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

grafana-signup-invite-join

Grafana OSS 13.2.3 - Élevé - À distance - Rejoindre sur invitation - SignUpStep2 rejoint les invitations d'organisation en attente sans le code

Voir le dépôt
7il y a 5 joursPas encore vérifié
Partager

Abraxas Labs - grafana-signup-invite-join

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

grafana-signup-invite-join

Classe : Privilège résiduel Portée : Distante

Grafana OSS 13.2.3 (6193dc0) - Grafana Labs

Lorsque users.allow_sign_up vaut true et que users.verify_email_enabled reste à sa valeur par défaut false, un POST /api/user/signup/step2 non authentifié avec un email invité crée le compte et applyUserInvite attache chaque ligne InvitePending pour cette adresse avec invite.Role. Le code d'invitation de 30 caractères n'est jamais requis sur ce chemin. Le rôle peut être Admin.

Connaître l'email invité. Contourner le code d'invitation. Rejoindre l'organisation en tant qu'Admin.

IDpas encore de CVE
ClassePrivilège résiduel
PortéeDistante (HTTP non authentifié ; nécessite users.allow_sign_up=true)
CWECWE-862
CVSSÉlevé : 8.1 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
ProduitGrafana OSS
Affecté13.2.3 (6193dc0) ; chemin d'inscription ouverte
Authnon authentifié. Vérification d'email désactivée par défaut. Inscription désactivée dans le defaults.ini standard.
LicenceGNU Affero GPL v3.0
Lab127.0.0.1 uniquement

Ce qu'un attaquant peut faire

Nécessite l'adresse invitée (l'email d'invitation, une supposition, ou une autre fuite). N'a pas besoin de la boîte mail et n'a pas besoin du code d'invitation. N'a pas besoin d'un compte Grafana existant.

PrivilègeMéthode / cibleReconnaissance / intégrité / disponibilitéProuvé en lab ou déduit
Créer un compte avec l'email invitéPOST /api/user/signup/step2 non authentifié avec code=""Intégrité (création de compte)Prouvé en lab. Session /api/user login=invitee
Rejoindre l'organisation invitée avec le rôle d'invitation (Admin dans ce lab)applyUserInvite depuis GetTempUsersQuery{Email, InvitePending}Intégrité (appartenance à l'organisation + rôle)Prouvé en lab. /api/user/orgs role=Admin ; sqlite org_user Admin
Consommer l'invitation en attente pour que le véritable invité ne puisse plus l'utiliserupdateTempUserStatus(..., TmpUserCompleted)Intégrité (consommation de l'invitation)Prouvé en lab. Liste des invitations en attente vide ; sqlite temp status=Completed
Même jointure pour les invitations Viewer/Editorinvite.Role est copié tel quelIntégritéDéduit. Le lab a utilisé Admin
Lire/écrire dans cette organisation en tant qu'Org Admin après connexionAPI Org Admin (datasources, dashboards, users)Reconnaissance + intégritéDéduit. Le lab s'arrête à role=Admin
Contrôle négatifInscription avec un autre email et un code viden/aProuvé en lab. invite-org-role=none

Fermé sur ce résidu : installation par défaut avec inscription désactivée ; chemin avec vérification d'email activée (ce chemin vérifie form.Code) ; liaison d'email à l'invitation complète (classe CVE-2022-39306, toujours présente) ; Grafana Admin (isGrafanaAdmin). Pas de RCE non authentifiée. Ignorer Grafana G2 (IAM SSOSetting k8s authorizer).

Comment je l'ai trouvé

J'ai épinglé Grafana OSS 13.2.3. L'OSS par défaut est revenu vide à ce niveau. Je me suis quand même attardé sur le chemin d'inscription ouverte. POST /api/user/signup/step2 est non authentifié. SignUpStep2 crée l'utilisateur, puis charge les invitations en attente par email. form.Code n'est requis que lorsque VerifyEmailEnabled est true.

Fausses pistes déjà consignées : re-déclarer CVE-2022-39306 (l'invitation complète lie toujours l'email) ; traiter le defaults.ini standard comme ce résidu (l'inscription y est désactivée) ; SCIM non authentifié sur OSS (client k8s nil) ; un reverse shell. Du théâtre.

Lab

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

ou :

cd lab
./run.sh

Cible uniquement http://127.0.0.1:19350. Image grafana/grafana:13.2.3 avec GF_USERS_ALLOW_SIGN_UP=true et la vérification d'email laissée désactivée.

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

Le correctif

Exiger le code d'invitation en attente, ou une preuve de boîte mail, avant applyUserInvite lors de l'inscription. Ne pas attacher les lignes InvitePending à partir de la seule correspondance d'email.

Références

  • github.com/grafana/grafana tag v13.2.3
  • signup.go · org_invite.go
  • Proche (pas ce chemin) : CVE-2022-39306
  • CWE-862

Licence

GNU Affero GPL v3.0. Voir LICENSE. Lab en boucle locale uniquement. Aucune garantie.

Télécharger l’outil