CVE-2026-33682Streamlit是Python的数据应用开发框架。在Windows主机上运行的1.54.0版本之前的Streamlit开源版本存在未经身份验证的服务端请求伪造(SSRF)漏洞。该漏洞源于对攻击者提供的文件系统路径验证不当。攻击者可利用恶意的UNC路径导致Streamlit服务器向攻击者控制的主机发起出站SMB连接,从而泄露Windows用户的NTLMv2凭据或进行NTLM中继攻击。
该漏洞的根本原因在于Streamlit在处理文件系统路径时,使用了`os.path.realpath()`或`Path.resolve()`进行路径解析,但在解析完成前未能进行充分的安全验证。在Windows系统中,以反斜杠开头的路径(如`\\attacker\share`)会被识别为通用命名约定(UNC)路径。当攻击者构造此类恶意路径并发送给服务器时,Streamlit会尝试解析该路径,进而触发Windows系统向远程SMB服务器(端口445)发起连接。在此过程中,Windows会自动尝试使用运行Streamlit进程的用户凭据(NTLMv2挑战-响应)进行身份验证。由于缺乏适当的验证机制,攻击者可以通过监听SMB流量捕获这些凭据,或者利用NTLM中继技术攻击内部其他服务,同时还可通过时间分析判断内部SMB主机的可达性。