SillyTavern — это локально устанавливаемый пользовательский интерфейс, который позволяет пользователям взаимодействовать с большими языковыми моделями генерации текста, механизмами генерации изображений и голосовыми моделями преобразования текста в речь. До версии 1.17.0 в src/endpoints/search.js имя хоста проверяется по /^\d+\.\d+\.\d+\.\d+$/. Это соответствует только буквальному IPv4 с точками (например, 127.0.0.1, 10.0.0.1).
Он не улавливает: localhost (имя хоста, а не четырехточечное с точками), [::1] (петля IPv6) и DNS-имена, разрешающиеся во внутренние адреса (например, localtest.me -> 127.0.0.1). Отдельная проверка порта (urlObj.port !== '') ограничивает эксплуатацию службами на портах по умолчанию (80/443), что делает эту серьезность менее серьезной, чем полностью неограниченный SSRF. Эта проблема исправлена в версии 1.17.0.
Показать оригинальное описание (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. Prior to version 1.17.0, in src/endpoints/search.js, the hostname is checked against /^\d+\.\d+\.\d+\.\d+$/. This only matches literal dotted-quad IPv4 (e.g. 127.0.0.1, 10.0.0.1). It does not catch: localhost (hostname, not dotted-quad), [::1] (IPv6 loopback), and DNS names resolving to internal addresses (e.g. localtest.me -> 127.0.0.1). A separate port check (urlObj.port !== '') limits exploitation to services on default ports (80/443), making this lower severity than a fully unrestricted SSRF. This issue has been patched in version 1.17.0.
Характеристики атаки
Последствия
Строка CVSS v3.1