Mastodon w wersjach przed 3.3.2 oraz 3.4.x przed 3.4.6 zawiera błąd kontroli dostępu wynikający z braku kompaktowania przychodzących podpisanych aktywności JSON-LD. Podatność umożliwia atakującemu obejście mechanizmów weryfikacji tożsamości i uzyskanie nieautoryzowanego dostępu.
▸ Pokaż oryginał (EN)
Mastodon before 3.3.2 and 3.4.x before 3.4.6 has incorrect access control because it does not compact incoming signed JSON-LD activities. (JSON-LD signing has been supported since version 1.6.0.)
Mastodon obsługuje protokół ActivityPub, w którym przychodzące aktywności mogą być podpisywane przy użyciu JSON-LD. Przed weryfikacją podpisu aplikacja powinna przeprowadzić operację kompaktowania (canonicalization) dokumentu JSON-LD, aby zapewnić jednoznaczną reprezentację danych. Ponieważ Mastodon tego nie robił, atakujący mógł spreparować aktywność JSON-LD w sposób pozwalający ominąć weryfikację podpisu przy jednoczesnym dostarczeniu złośliwej treści. W efekcie możliwe było podszywanie się pod innych użytkowników lub serwery w sieci federowanej.
Atakujący zdalny, nieuwierzytelniony może obejść kontrolę dostępu, potencjalnie podszywając się pod innych aktorów w sieci federowanej ActivityPub, co może prowadzić do naruszenia poufności, integralności oraz dostępności danych.
Należy zaktualizować Mastodon do wersji 3.3.2 lub 3.4.6 (bądź nowszej). Patche dostępne są w oficjalnym repozytorium GitHub: https://github.com/mastodon/mastodon/releases/tag/v3.3.2 oraz https://github.com/mastodon/mastodon/releases/tag/v3.4.6
Mastodon w wersjach przed 3.3.2 oraz w gałęzi 3.4.x przed 3.4.6 (obsługa podpisywania JSON-LD dostępna od wersji 1.6.0)
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HJoinmastodon Mastodon
APPJoinmastodon< 3.3.23.4.0 – 3.4.6 (bez)
Powiązane podatności
Mastodon: Podszywanie się pod zdalne konta poprzez brak walidacji origin
XSS w Mastodon poprzez spreparowane dane oEmbed w kartach podglądu
Mastodon: path traversal w przetwarzaniu mediów umożliwia RCE
Brak ograniczenia prób uwierzytelniania w Mastodon (przed 4.0.0)
Mastodon: błędna obsługa timeout sesji — niewystarczające wygasanie sesji