Ghost CMS w wersji do 5.76.0 zawiera podatność stored XSS, która pozwala użytkownikowi z rolą kontrybutora na przejęcie dowolnego konta w systemie. Zagrożenie jest poważne ze względu na możliwość eskalacji uprawnień bez wymaganej interakcji ofiary poza przeglądaniem złośliwej treści.
▸ Pokaż oryginał (EN)
Ghost through 5.76.0 allows stored XSS, and resultant privilege escalation in which a contributor can take over any account, via an SVG profile picture that contains JavaScript code to interact with the API on localhost TCP port 3001. NOTE: The discoverer reports that "The vendor does not view this as a valid vector."
Atakujący z uprawnieniami kontrybutora przesyła jako zdjęcie profilowe plik SVG zawierający osadzony kod JavaScript. Gdy plik SVG jest renderowany przez przeglądarkę ofiary, złośliwy skrypt wykonuje się w kontekście aplikacji i komunikuje się z lokalnym API Ghost nasłuchującym na porcie TCP 3001. Poprzez zapytania do API atakujący może wykonywać operacje w imieniu zalogowanej ofiary, w tym przejąć jej konto niezależnie od poziomu uprawnień.
Atakujący może przejąć dowolne konto użytkownika Ghost CMS, w tym konto administratora, uzyskując pełną kontrolę nad instancją aplikacji. Skutkiem jest całkowite naruszenie poufności, integralności oraz dostępności danych i systemu.
Należy zastosować patche dostępne u producenta zgodnie z referencjami (pull request #19646 w repozytorium TryGhost/Ghost). Zaleca się również ograniczenie możliwości przesyłania plików SVG jako avatarów przez użytkowników o niskich uprawnieniach oraz monitorowanie aktywności API na porcie 3001.
Ghost CMS w wersjach do 5.76.0 włącznie
Producent (Ghost/TryGhost) oficjalnie nie uznaje opisanego wektora ataku za poprawny. Podatność została odkryta i zgłoszona przez Rhino Security Labs, a dowód koncepcji (PoC) jest publicznie dostępny w repozytorium RhinoSecurityLabs/CVEs.
CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:HGhost
APPGhost≤ 5.76.0
Powiązane podatności
Ghost CMS: nieuwierzytelniony odczyt bazy danych przez SQL injection
Ghost CMS – obejście limitu prób uwierzytelnienia przez nagłówki X-Forwarded-For
Ghost CMS: Arbitrary File Upload umożliwiający wykonanie kodu (RCE)
Ghost v4.39.0 — przesyłanie plików SVG z potencjalnym wykonaniem kodu po stronie klienta
Ghost is a Node.js content management system. From version 5.101.6 to 6.19.2, incomplete CSRF protections arou...