
Analyse technique détaillée de CVE-2026-47777, un contournement d'autorisation de haute sévérité dans le pipeline de fédération des collections en vedette de Mastodon, incluant la cause racine, la preuve de concept et le correctif.
J'ai divulgué de manière responsable une vulnérabilité de contournement d'autorisation de haute gravité affectant le pipeline de fédération expérimental des collections mises en avant de Mastodon.
Identifiant CVE : CVE-2026-47777
ActivityPub::VerifyFeaturedItemService| Score | Vecteur |
|---|---|
| 7.5 (Élevé) | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N |
Le pipeline de vérification des collections mises en avant acceptait un objet FeatureAuthorization contrefait sans vérifier que l'autorisation appartenait réellement au compte mis en avant.
La logique de vérification garantissait seulement que :
Cependant, elle ne vérifiait pas si :
FeatureAuthorization.interactionTarget
correspondait au compte inséré dans la collection.
En conséquence, une instance Mastodon fédérée malveillante pouvait contrefaire des documents d'autorisation et indiquer faussement que des utilisateurs distants arbitraires avaient consenti à apparaître dans des collections mises en avant organisées.
Cela a entraîné un contournement d'autorisation affectant l'intégrité de la fédération.
La vulnérabilité était causée par une liaison d'identité manquante à l'intérieur de :
ActivityPub::VerifyFeaturedItemService
Le service ne comparais pas :
CollectionItem.object_uri
avec
FeatureAuthorization.interactionTarget
En raison de l'absence de cette validation, les objets d'autorisation pouvaient être réutilisés pour des comptes victimes non liés.
Un attaquant pouvait :
FeatureAuthorizationImpact : Intégrité de la fédération (Intégrité uniquement)
La confidentialité n'a pas été affectée.
La validation manquante était effectivement :
return if @collection_item.object_uri != value_or_id(@authorization['interactionTarget'])
Sans cette vérification d'identité, les documents d'autorisation générés par un domaine contrôlé par l'attaquant pouvaient être acceptés pour des utilisateurs non liés.
La vulnérabilité a été vérifiée indépendamment en utilisant plusieurs approches :
Le harness de vérification Python personnalisé a testé toutes les variations de @context JSON-LD supportées par l'analyseur de Mastodon.
L'analyse a confirmé que la vulnérabilité provenait d'une liaison d'autorisation manquante, et non de l'analyse JSON-LD.
Le flux d'exploitation est le suivant :
FeatureAuthorization contrefait est publié.Un compte victime apparaît comme s'il avait consenti à être mis en avant, bien qu'il n'ait jamais accordé d'autorisation.
Le problème a été résolu en introduisant une validation explicite de l'identité entre :
CollectionItem.object_uri)FeatureAuthorization.interactionTarget)avant d'accepter l'autorisation.
| Date | Événement |
|---|---|
| 2026 | Recherche terminée |
| 2026 | Divulgation responsable soumise |
| 2026 | Vulnérabilité reproduite |
| 2026 | CVE attribué (CVE-2026-47777) |
| 2026 | Correctif publié (Mastodon 4.6.0-beta.1) |
Un merci spécial à l'équipe de sécurité de Mastodon pour avoir examiné le rapport, validé le problème, attribué CVE-2026-47777 et mis en œuvre un correctif de sécurité coordonné via une divulgation responsable.
Chercheur en sécurité : Bekzod
Divulgation responsable effectuée conformément aux pratiques de divulgation coordonnée des vulnérabilités.