Streamlit
cpe:2.3:a:streamlit:streamlit:*:*:*:*:*:*:*
- < 1.54.0
A server-side request forgery (SSRF) vulnerability has been identified in Streamlit Open Source versions prior to 1.54.0, specifically on Windows operating systems. This vulnerability allows attackers to manipulate filesystem paths, leading to unauthorized SMB connections and potential exposure of NTLMv2 authentication credentials. The issue arises from inadequate validation of user-supplied paths, particularly within the ComponentRequestHandler. When a malicious UNC path is provided, the Streamlit server can be coerced into initiating outbound SMB requests, which may be exploited to perform NTLM relay attacks or identify reachable SMB hosts internally.
Exploitation of this vulnerability allows for unauthenticated SSRF attacks, with the added risk of NTLMv2 credential exposure. The leaked NTLMv2 hashes could be used in relay attacks against internal services or subjected to offline brute-force attempts to recover the associated plaintext passwords.
To reproduce this vulnerability, upload a Streamlit component that requests a file from the server. The request can be made through the Streamlit app, which will trigger the ComponentRequestHandler. The path security validation can be bypassed by using a double-slash prefix, which is normalized by Starlette, but the original path remains intact. This can be done by appending an attacker-controlled UNC path to the request, which will be processed by the Streamlit server.
Users are advised to upgrade to Streamlit Open Source version 1.54.0 or later.
Our algorithm analyzes dozens of metrics to generate these 8 key vulnerability categories, which are then combined to calculate the overall risk score.