IPBUF安全漏洞报告
English
CVE-2026-33404 CVSS 3.4 低危

CVE-2026-33404 Pi-hole Web界面存储型XSS漏洞

披露日期: 2026-04-06

漏洞信息

漏洞编号
CVE-2026-33404
漏洞类型
跨站脚本 (XSS)
CVSS评分
3.4 低危
攻击向量
本地 (AV:L)
认证要求
高权限 (PR:H)
用户交互
无需交互 (UI:N)
影响产品
Pi-hole Admin Interface

相关标签

XSSStored XSSPi-holeCWE-79Web Security

漏洞概述

Pi-hole Admin Interface在6.0至6.5之前的版本中存在跨站脚本(XSS)漏洞。该漏洞是由于Web界面在展示从FTL数据库获取的客户端主机名和IP地址时,未对数据进行输出转义所致。尽管上游组件对输入有过滤,但UI层面的不一致性仍可能导致恶意脚本在管理员浏览器中执行。

技术细节

该漏洞位于Pi-hole Admin Interface的Web前端代码中,具体涉及`network.js`(网络页面)和`charts.js/index.js`(仪表板图表提示)。问题根源在于,当从FTL(Fast Telemetry Lookup)数据库查询并渲染客户端主机名和IP地址到DOM(文档对象模型)时,应用程序未对这些数据进行HTML实体编码或转义处理。尽管Pi-hole的DNS解析组件dnsmasq和FTL在正常的DHCP/DNS处理路径中会对HTML字符进行验证和拦截,但Web UI层面的数据渲染逻辑与上游验证存在不一致性。这种不一致导致如果恶意数据进入数据库,或者在特定上游验证失效的情况下,攻击者注入的JavaScript代码将被浏览器直接执行。由于CVSS向量要求高权限(PR:H)和本地访问(AV:L),这通常意味着攻击者需要具备一定的网络控制能力或管理员权限配合,利用该漏洞可进一步劫持管理员会话。

攻击链分析

STEP 1
数据注入
攻击者通过控制网络设备或利用上游验证的特定边界情况,将包含恶意HTML/JavaScript代码的主机名或IP地址数据发送至Pi-hole的FTL数据库。
STEP 2
数据存储
FTL(Fast Telemetry Lookup)服务记录下该包含恶意Payload的客户端信息,并将其存储在数据库中等待Web界面调用。
STEP 3
用户访问
具有高权限的管理员登录Pi-hole Web管理界面,并访问受影响的页面(如Network页面或Dashboard图表)。
STEP 4
漏洞触发
Web界面的JavaScript文件(network.js或charts.js)从数据库读取未经过滤的主机名,并直接渲染到DOM中,导致恶意脚本在管理员的浏览器上下文中执行。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
// Conceptual Proof of Concept for CVE-2026-33404 // This demonstrates how the lack of output escaping in network.js can be exploited. // Malicious payload simulating a compromised client hostname // In a real scenario, this would be injected via DHCP or DNS records if upstream validation permits var maliciousHostname = "<img src=x onerror=alert('XSS via CVE-2026-33404')>"; // Vulnerable code simulation in network.js (Original vulnerable logic) // The application takes the hostname directly from the database and assigns it to innerHTML function renderHostname(data) { var element = document.getElementById('client-hostname'); // VULNERABILITY: No sanitization or escaping of 'data.hostname' // If data.hostname contains HTML tags, they are rendered by the browser element.innerHTML = data.hostname; } // Triggering the vulnerability var dbData = { hostname: maliciousHostname }; // When the admin views the Network page, this function runs // resulting in the execution of the alert() payload renderHostname(dbData);

影响范围

Pi-hole Admin Interface >= 6.0, < 6.5

防御指南

临时缓解措施
由于该漏洞需要高权限和本地网络访问,且已在6.5版本修复,建议立即升级。若无法立即升级,应严格限制对Pi-hole Web管理界面的访问,仅允许可信的管理员IP地址连接,并定期检查网络日志中是否存在异常的主机名记录。

参考链接

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