W komponencie Analytics aplikacji Lunary istnieje krytyczna podatność typu stored XSS, wynikająca z bezpośredniego wstrzykiwania wartości zmiennej środowiskowej NEXT_PUBLIC_CUSTOM_SCRIPT do DOM bez żadnej sanityzacji. Umożliwia ona wykonanie dowolnego kodu JavaScript w przeglądarkach wszystkich użytkowników aplikacji.
▸ Pokaż oryginał (EN)
A critical stored Cross-Site Scripting (XSS) vulnerability exists in the Analytics component of lunary-ai/lunary versions up to 1.9.23, where the NEXT_PUBLIC_CUSTOM_SCRIPT environment variable is directly injected into the DOM using dangerouslySetInnerHTML without any sanitization or validation. This allows arbitrary JavaScript execution in all users' browsers if an attacker can control the environment variable during deployment or through server compromise. The vulnerability can lead to complete account takeover, data exfiltration, malware distribution, and persistent attacks affecting all users until the environment variable is cleaned. The issue is fixed in version 1.9.25.
Zmienna środowiskowa NEXT_PUBLIC_CUSTOM_SCRIPT jest wstrzykiwana bezpośrednio do DOM przy użyciu mechanizmu dangerouslySetInnerHTML w React, który celowo pomija wbudowane zabezpieczenia przed XSS. Atakujący, który uzyska kontrolę nad tą zmienną środowiskową podczas wdrożenia aplikacji lub w wyniku kompromitacji serwera, może osadzić dowolny kod JavaScript. Złośliwy skrypt jest następnie wykonywany w przeglądarkach wszystkich użytkowników odwiedzających aplikację i pozostaje aktywny do momentu wyczyszczenia zmiennej środowiskowej.
Atakujący może doprowadzić do całkowitego przejęcia kont użytkowników (account takeover), kradzieży danych (data exfiltration), dystrybucji złośliwego oprogramowania oraz przeprowadzenia trwałych ataków wpływających na wszystkich użytkowników aplikacji.
Należy zaktualizować Lunary do wersji 1.9.25, w której problem został naprawiony. Dodatkowo zaleca się przegląd i weryfikację aktualnie ustawionych zmiennych środowiskowych pod kątem obecności złośliwych skryptów.
Lunary (lunary-ai/lunary) w wersjach do 1.9.23 włącznie
Podatność wymaga uzyskania przez atakującego kontroli nad zmienną środowiskową NEXT_PUBLIC_CUSTOM_SCRIPT, co możliwe jest podczas procesu wdrożenia aplikacji lub po uprzedniej kompromitacji serwera. Poprawka dostępna w commicie e2e43e88cecf742bacb639ab880507bbfdfd065c w repozytorium GitHub projektu.
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:HLunary
APPLunary< 1.9.25
Powiązane podatności
Brak kontroli dostępu w API BigQuery — eksport całej bazy danych w Lunary
SQL Injection w trasie /api/v1/external-users aplikacji Lunary
Lunary: brak kontroli dostępu do konfiguracji SAML (nieautoryzowana zmiana)
Błąd autoryzacji w Lunary umożliwiający pełny dostęp do projektów
SSRF w Lunary – nieautoryzowane żądania przez endpoint SAML IdP