SillyTavern w wersjach przed 1.13.4 jest podatny na atak DNS rebinding, który pozwala atakującemu na wykonywanie nieautoryzowanych akcji w interfejsie użytkownika. Zagrożenie jest poważne, ponieważ atakujący może instalować złośliwe rozszerzenia, odczytywać historię czatów oraz wstrzykiwać dowolny kod HTML w celach phishingowych.
▸ Pokaż oryginał (EN)
SillyTavern is a locally installed user interface that allows users to interact with text generation large language models, image generation engines, and text-to-speech voice models. In versions prior to 1.13.4, the web user interface for SillyTavern is susceptible to DNS rebinding, allowing attackers to perform actions like install malicious extensions, read chats, inject arbitrary HTML for phishing attacks, etc. The vulnerability has been patched in the version 1.13.4 by introducing a server configuration setting that enables a validation of host names in inbound HTTP requests according to the provided list of allowed hosts: `hostWhitelist.enabled` in config.yaml file or `SILLYTAVERN_HOSTWHITELIST_ENABLED` environment variable. While the setting is disabled by default to honor a wide variety of existing user configurations and maintain backwards compatibility, existing and new users are encouraged to review their server configurations and apply necessary changes to their setup, especially if hosting over the local network while not using SSL.
Atak DNS rebinding polega na tym, że atakujący kontroluje serwer DNS, który najpierw zwraca adres zewnętrzny, a następnie – po wygaśnięciu rekordu TTL – podmienia odpowiedź na adres lokalny (np. 127.0.0.1), gdzie działa SillyTavern. Przeglądarka ofiary, odwiedzając stronę kontrolowaną przez atakującego, zaczyna wówczas wysyłać żądania HTTP bezpośrednio do lokalnej instancji SillyTavern, omijając mechanizmy ochrony same-origin policy. Ponieważ SillyTavern nie weryfikował nagłówka Host w przychodzących żądaniach HTTP, nie był w stanie odróżnić legalnych żądań od tych spreparowanych przez napastnika. Podatność jest szczególnie groźna w środowiskach, gdzie SillyTavern jest dostępny w sieci lokalnej bez szyfrowania SSL.
Atakujący może zdalnie instalować złośliwe rozszerzenia, odczytywać prywatne czaty użytkownika oraz wstrzykiwać dowolny kod HTML umożliwiający ataki phishingowe. W przypadku dostępu do sieci lokalnej zakres narażonych zasobów może być znacznie szerszy.
Należy zaktualizować SillyTavern do wersji 1.13.4 lub nowszej. W wersji 1.13.4 wprowadzono mechanizm walidacji nagłówka Host — należy włączyć ustawienie `hostWhitelist.enabled` w pliku config.yaml lub przez zmienną środowiskową `SILLYTAVERN_HOSTWHITELIST_ENABLED` i skonfigurować listę dozwolonych hostów. Ustawienie jest domyślnie wyłączone ze względu na kompatybilność wsteczną, dlatego jego aktywacja wymaga ręcznej interwencji administratora. Szczególną uwagę powinni zwrócić użytkownicy udostępniający SillyTavern w sieci lokalnej bez SSL.
SillyTavern we wszystkich wersjach przed 1.13.4
Podatność wymaga interakcji użytkownika (UI:R) — ofiara musi odwiedzić złośliwą stronę w przeglądarce, aby atak DNS rebinding mógł być przeprowadzony. Producent zaleca przegląd konfiguracji serwera i włączenie whitelisty hostów, zwłaszcza przy hostowaniu w sieci lokalnej bez SSL. Szczegółowa lista kontrolna bezpieczeństwa dostępna w dokumentacji producenta.
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:H