IPBUF安全漏洞报告
English
CVE-2026-34526 CVSS 5.0 中危

CVE-2026-34526 SillyTavern SSRF漏洞

披露日期: 2026-04-02

漏洞信息

漏洞编号
CVE-2026-34526
漏洞类型
SSRF (服务端请求伪造)
CVSS评分
5.0 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
SillyTavern

相关标签

SSRFSillyTavern信息泄露绕过CVE-2026-34526

漏洞概述

SillyTavern是用于交互大语言模型的本地界面。在1.17.0版本前,src/endpoints/search.js中的主机名检查仅匹配点分IPv4格式,无法拦截localhost、IPv6回环地址或解析到内网的DNS名称。尽管端口检查限制了攻击范围至默认端口,但仍存在服务端请求伪造(SSRF)风险,可能导致内网信息泄露。

技术细节

该漏洞的核心在于SillyTavern对src/endpoints/search.js中目标URL主机名的验证逻辑存在疏漏。代码仅使用正则表达式/^\d+\.\d+\.\d+\.\d+$/来匹配IPv4地址,导致其无法识别localhost、IPv6格式(如[::1])以及DNS重绑定域名(如localtest.me)。攻击者可利用这些绕过方式,诱导SillyTavern服务器向内部网络发起请求。由于额外的端口检查逻辑(urlObj.port !== ''),利用被限制在默认的80(HTTP)和443(HTTPS)端口,这降低了风险,但攻击者仍可探测或攻击运行在这些端口上的内部敏感服务。

攻击链分析

STEP 1
步骤1:发现目标
攻击者识别出目标正在运行SillyTavern服务,且版本低于1.17.0。
STEP 2
步骤2:构造绕过载荷
攻击者构造一个包含内网地址的主机名,但不使用点分十进制IPv4格式。例如使用'http://localtest.me'或'http://[::1]',以绕过正则表达式检查。
STEP 3
步骤3:发送恶意请求
攻击者通过SillyTavern的搜索接口发送包含恶意URL的请求。由于端口检查限制,攻击者通常指向内网服务的80或443端口。
STEP 4
步骤4:服务端请求伪造
SillyTavern服务器解析该URL,未能识别出其为内网地址,并向该内部地址发起HTTP请求。
STEP 5
步骤5:信息泄露
内网服务响应请求,攻击者通过SillyTavern的响应获取内网敏感信息或确认内网服务状态。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
// PoC Concept: Sending a request to the vulnerable search endpoint // Target: SillyTavern < 1.17.0 // Bypass: Using 'localhost' or DNS rebinding to bypass IPv4 regex check const targetUrl = 'http://localtest.me:80'; // Resolves to 127.0.0.1, bypasses the strict IPv4 regex fetch('http://<sillytavern-host>/api/search', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ url: targetUrl // The vulnerable code checks urlObj.hostname against /^\d+\.\d+\.\d+\.\d+$/ // 'localtest.me' does not match the regex, so it passes the weak filter. // Port check allows default ports (80/443). }) });

影响范围

SillyTavern < 1.17.0

防御指南

临时缓解措施
建议立即升级至修复版本。若无法升级,应在网络层面限制SillyTavern进程的出站网络访问,禁止其访问本地回环地址(127.0.0.1, ::1)及内网网段。

参考链接

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