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
plausible-editor-invite — Plausible Analytics master d44e104 - Élevé - À distance - Reliquat de privilèges - éditeur personnes HTML fuites transfert nanoid | Kitploit
Outils/GitHubGitHub/abraxas/plausible-editor-invite
Escalade de PrivilègesAnalyse des VulnérabilitésExploitationExploitation d'Applications WebSécurité WebTests d'IntrusionLabs et Pratique
GitHubabraxas/plausible-editor-invite

plausible-editor-invite

Plausible Analytics master d44e104 - Élevé - À distance - Reliquat de privilèges - éditeur personnes HTML fuites transfert nanoid

Voir le dépôt
1il y a 2 joursPas 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

Abraxas Labs - plausible-editor-invite

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  plausible-editor-invite

plausible-editor-invite

Plausible Analytics édition communautaire, master GitHub d44e104ae3943a9240d5cb6b62e67dff0f069d3a (2026-10-16) - Plausible Insights OÜ

Classe : privilège résiduel (fuite de jeton d'invitation). Portée : à distance (éditeur invité ou éditeur d'équipe de ce site).

Sites.list_people/1 sélectionne les champs bruts guest_invitations.invitation_id et team_site_transfers.transfer_id. settings_people.html.heex place ce nanoid de 21 caractères dans id="invitation-#{invitation.invitation_id}" pour chaque ligne en attente. Les paramètres People ne figurent pas dans @special_cased_actions de SiteController, donc AuthorizeSiteAccess autorise :editor. L'éditeur invité correspond au rôle de site :editor. Le spectateur invité reçoit une 404.

Nanoid.generate/0 est le porteur d'authentification pour l'inscription depuis une invitation. La requête non authentifiée GET /register/invitation/:invitation_id effectue la recherche uniquement par id. Le LiveView register écrase l'e-mail soumis par invitation.email. L'édition CE par défaut utilise DISABLE_REGISTRATION=invite_only et ENABLE_EMAIL_VERIFICATION=false. L'acceptation se fait via POST /sites/invitations/:id/accept par correspondance d'e-mail citext.

Un éditeur invité qui peut déjà voir le HTML de People lit un nanoid de transfert de propriété en attente, s'inscrit en tant que destinataire de l'invitation, puis accepte. Le site bascule sur l'équipe personnelle de l'attaquant.

IDaucun CVE pour l'instant
CWECWE-200 / CWE-269
CVSSÉlevé : 8.1 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:L
ProduitPlausible Analytics
Affectémaster GitHub d44e104ae3943a9240d5cb6b62e67dff0f069d3a (2026-10-16). Le dernier tag CE v3.2.1 (e4f5a87a5570bd61605217e7ceb376636db8eddb, 2026-05-15) a cinq mois de retard. SECURITY.md demande aux opérateurs d'utiliser :latest. L'épinglage correspond au HEAD actuel. CE MIX_ENV=ce ne compile que lib/.
Authentificationéditeur invité authentifié (:guest_member, :editor) ou éditeur d'équipe de ce site. Pas non authentifié. Pas spectateur invité.
LicenceGNU Affero GPL v3.0
Lab127.0.0.1:18180 (http) 18181 (postgres) 18182 (clickhouse http) uniquement

Résidu n°1 de Plausible Analytics leftovers. Même épinglage, autre pack : plausible-traffic-notify (affectation de masse de site_id dans PUT traffic-change-notification). Ce pack-ci est celui qui dérobe un transfert de propriété en attente.

Ce qu'un attaquant peut faire

Éditeur invité authentifié ou éditeur d'équipe d'un site ayant une invitation d'invité et/ou un transfert de propriété en attente. Nécessite un cookie de session normal. Pas de propriétaire, pas d'admin, pas de LiveView super-admin. Il ne force pas le nanoid de 21 caractères. Il le lit dans le HTML qu'il est autorisé à charger, puis s'inscrit en tant que destinataire de l'invitation.

Table des privilèges (exhaustive). Même niveau d'exigence que Signal-Server Dropwizard admin : méthode + chemin, ce que cet appel accorde, reconnaissance vs intégrité vs disponibilité, prouvé en labo vs déduit, surface adjacente qui reste fermée.

AxeMéthode + cheminAccordeProvenance
ReconGET /:domain/settings/people en tant qu'invité/éditeur d'équipeLes lignes en attente affichent id="invitation-<nanoid>". Le nanoid est invitation_id ou transfer_id. Même site uniquement. L'e-mail de l'invité figure aussi dans le tableau.Prouvé en labo. L'éditeur people 200 a divulgué le nanoid Hc8DiBC2q08mv5LFmBysu
ReconGET /register/invitation/:id non authentifiéE-mail de l'invité sur le formulaire d'inscription. La recherche se fait uniquement par id (find_by_id_unified).Prouvé en labo. Le HTML d'inscription affichait [email protected]
IntégritéLiveView register sur /register/invitation/:idLe user[email] soumis est écrasé par invitation.email. Nouveau compte CE à l'adresse de l'invité. Vérification d'e-mail CE désactivée par défaut. L'inscription sur invitation autorise toujours :invitation.Prouvé en labo. [email protected] soumis ; l'e-mail stocké était [email protected]
IntégritéPOST /sites/invitations/:id/accept avec ce nouveau compteLe transfert de propriété en attente déplace sites.team_id vers l'équipe personnelle du nouveau propriétaire. La ligne de transfert a disparu.Prouvé en labo. sites.team_id 1 → 2
Intégritémême acceptation sur une invitation invité en attente pour cet e-mailNouvelle adhésion sur ce site (éditeur-pour-éditeur n'est pas un gain). Les autres lignes équipe/invité/transfert en attente pour cet e-mail deviennent également acceptables.Source (InvitationController.accept_invitation)
Disponibilitéaprès acceptation du transfertL'équipe d'origine perd le site. Les statistiques continuent d'être servies sur la nouvelle équipe.Prouvé en labo. team_id déplacé

Reste fermé sur ce pin

AxeMéthode + cheminPourquoi c'est fermé
ReconGET /:domain/settings/people par un spectateur invité404. Le spectateur n'est pas :editor. Prouvé en labo.
IntégritéPOST /sites/invitations/:id/accept par un éditeur de l'id de transfert divulguéCorrespondance d'e-mail. L'éditeur n'est pas [email protected]. Le site reste sur l'équipe 1. Prouvé en labo.
Intégritéinscription non authentifiée sans id d'invitation validecheck_registration_enabled(:default) vs :invitation. whoareme Bug 02, corrigé.
Reconforce brute de nanoid de 21 caractèresAlphabet URL-safe, 21 caractères. Hors de portée de ce reliquat.
Reconévénements ClickHouse, SMTP, pages people d'autres sitesMême site uniquement. Pas d'admin ClickHouse. Pas de lecture de boîte mail.
Intégritéinvitation et transfert par propriétaire/adminIls peuvent déjà. Ce reliquat concerne l'éditeur qui ne peut pas.
IntégritéLiveView super-admin, shell OS, SSO EE extra/libFermé. Labo CE. Pas de shell.
Télécharger l’outil