
Analisi tecnica dettagliata di CVE-2026-47777, un bypass dell'autorizzazione ad alta gravità nella pipeline di federazione delle Collezioni in evidenza di Mastodon, inclusi causa principale, PoC e patch.
Ho divulgato in modo responsabile una vulnerabilità di Bypass dell'autorizzazione ad Alta gravità che interessa la pipeline di federazione sperimentale delle Raccolte in evidenza di Mastodon.
CVE ID: CVE-2026-47777
ActivityPub::VerifyFeaturedItemService| Punteggio | Vettore |
|---|---|
| 7.5 (Alta) | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N |
La pipeline di verifica delle Raccolte in evidenza accettava un oggetto FeatureAuthorization contraffatto senza verificare che l'autorizzazione appartenesse effettivamente all'account in evidenza.
La logica di verifica garantiva solo che:
Tuttavia, non verificava se:
FeatureAuthorization.interactionTarget
corrispondesse all'account inserito nella Collezione.
Di conseguenza, un'istanza Mastodon federata malintenzionata poteva contraffare documenti di autorizzazione e indicare falsamente che utenti remoti arbitrari avevano acconsentito a comparire in Raccolte in evidenza curate.
Ciò ha comportato un Bypass dell'autorizzazione che ha compromesso l'integrità della federazione.
La vulnerabilità è stata causata da un binding di identità mancante all'interno di:
ActivityPub::VerifyFeaturedItemService
Il servizio non riusciva a confrontare:
CollectionItem.object_uri
con
FeatureAuthorization.interactionTarget
Poiché questa validazione mancava, gli oggetti di autorizzazione potevano essere riutilizzati per account vittima non correlati.
Un attaccante poteva:
FeatureAuthorizationImpatto: Integrità della federazione (solo integrità)
La riservatezza non è stata compromessa.
La validazione mancante era sostanzialmente:
return if @collection_item.object_uri != value_or_id(@authorization['interactionTarget'])
Senza questo controllo di identità, i documenti di autorizzazione generati da un dominio controllato dall'attaccante potevano essere accettati per utenti non correlati.
La vulnerabilità è stata verificata in modo indipendente utilizzando più approcci:
L'harness di verifica Python personalizzato ha testato ogni variazione di @context JSON-LD supportata e accettata dal parser di Mastodon.
L'analisi ha confermato che la vulnerabilità ha origine da un binding di autorizzazione mancante, non dal parsing JSON-LD.
Il flusso di lavoro dell'exploit è:
FeatureAuthorization contraffatto.Un account vittima appare come se avesse acconsentito a essere in evidenza, nonostante non abbia mai concesso l'autorizzazione.
Il problema è stato risolto introducendo una validazione esplicita dell'identità tra:
CollectionItem.object_uri)FeatureAuthorization.interactionTarget)prima di accettare l'autorizzazione.
Un ringraziamento speciale al Mastodon Security Team per aver esaminato il report, validato il problema, assegnato il CVE-2026-47777 e implementato una correzione di sicurezza coordinata tramite divulgazione responsabile.
Ricercatore di sicurezza: Bekzod
Divulgazione responsabile condotta in conformità con le pratiche di divulgazione coordinata delle vulnerabilità.
| Data | Evento |
|---|
| 2026 | Ricerca completata |
| 2026 | Divulgazione responsabile inviata |
| 2026 | Vulnerabilità riprodotta |
| 2026 | CVE assegnato (CVE-2026-47777) |
| 2026 | Patch rilasciata (Mastodon 4.6.0-beta.1) |