Streamlit — это среда разработки приложений, ориентированных на данные, для Python. Версии Streamlit с открытым исходным кодом до 1.54.0, работающие на хостах Windows, имеют уязвимость подделки запросов на стороне сервера (SSRF) без проверки подлинности. Уязвимость возникает из-за неправильной проверки путей к файловой системе, предоставленных злоумышленником.
В определенных путях кода, в том числе внутри ComponentRequestHandler, пути файловой системы разрешаются с помощью os.path.realpath() или Path.resolve() до того, как произойдет достаточная проверка. В системах Windows предоставление вредоносного пути UNC (например, `\\attacker-control-host\share`) может привести к тому, что сервер Streamlit инициирует исходящие соединения SMB через порт 445. Когда Windows пытается пройти аутентификацию на удаленном SMB-сервере, могут быть переданы учетные данные запроса-ответа NTLMv2 пользователя Windows, запускающего процесс Streamlit.
Такое поведение может позволить злоумышленнику выполнять атаки ретрансляции NTLM на другие внутренние службы и/или идентифицировать внутренне доступные узлы SMB посредством анализа времени. Уязвимость устранена в версии Streamlit Open Source 1.54.0.
Показать оригинальное описание (EN)
Streamlit is a data oriented application development framework for python. Streamlit Open Source versions prior to 1.54.0 running on Windows hosts have an unauthenticated Server-Side Request Forgery (SSRF) vulnerability. The vulnerability arises from improper validation of attacker-supplied filesystem paths. In certain code paths, including within the `ComponentRequestHandler`, filesystem paths are resolved using `os.path.realpath()` or `Path.resolve()` before sufficient validation occurs. On Windows systems, supplying a malicious UNC path (e.g., `\\attacker-controlled-host\share`) can cause the Streamlit server to initiate outbound SMB connections over port 445. When Windows attempts to authenticate to the remote SMB server, NTLMv2 challenge-response credentials of the Windows user running the Streamlit process may be transmitted. This behavior may allow an attacker to perform NTLM relay attacks against other internal services and/or identify internally reachable SMB hosts via timing analysis. The vulnerability has been fixed in Streamlit Open Source version 1.54.0.
Характеристики атаки
Последствия
Строка CVSS v3.1