IPBUF安全漏洞报告
English
CVE-2026-41895 CVSS 7.5 高危

CVE-2026-41895 changedetection.io XXE注入漏洞

披露日期: 2026-05-12

漏洞信息

漏洞编号
CVE-2026-41895
漏洞类型
XML外部实体注入 (XXE)
CVSS评分
7.5 高危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
changedetection.io

相关标签

XXEXML注入changedetection.io信息泄露SSRF

漏洞概述

changedetection.io在0.54.9及更早版本中存在XML外部实体注入(XXE)漏洞。该漏洞源于`xpath_filter()`函数在处理XML/RSS内容时,使用了不安全的XML解析配置。由于未显式禁用外部实体解析和DTD加载,攻击者可通过诱导应用解析特制的恶意XML数据,读取服务器本地敏感文件或探测内网,导致信息泄露。

技术细节

该漏洞位于changedetection.io的XML处理逻辑中。当`xpath_filter()`函数检测到XML或RSS内容时,会使用Python的`lxml.etree`库创建解析器。代码中创建了`etree.XMLParser(strip_cdata=False)`对象,但未设置`resolve_entities=False`或`no_network=True`等安全参数。随后,应用直接调用`etree.fromstring()`解析用户提供的不可信XML字节。由于解析器默认允许处理外部实体,攻击者可以构造包含恶意DOCTYPE定义的XML载荷,利用SYSTEM实体读取服务器本地文件(如`/etc/passwd`)或执行SSRF攻击。CVSS 3.1评分为7.5,主要影响机密性。

攻击链分析

STEP 1
步骤1
攻击者识别出目标运行的是changedetection.io 0.54.9或更早版本。
STEP 2
步骤2
攻击者构造包含恶意外部实体定义的XML载荷,旨在读取服务器敏感文件。
STEP 3
步骤3
攻击者通过监控功能或API接口,将恶意XML数据发送给目标应用。
STEP 4
步骤4
应用的`xpath_filter()`函数接收到数据,使用不安全的配置调用`etree.fromstring()`进行解析。
STEP 5
步骤5
XML解析器处理外部实体请求,读取本地文件内容并将其包含在解析结果中返回给攻击者。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
<?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE foo [ <!ELEMENT foo ANY > <!ENTITY xxe SYSTEM "file:///etc/passwd" > ]> <foo>&xxe;</foo>

影响范围

changedetection.io <= 0.54.9

防御指南

临时缓解措施
建议立即升级到修复了该漏洞的最新版本。如果暂时无法升级,应在应用层面对所有输入的XML数据进行严格的格式校验,并确保在调用`lxml.etree`时设置`resolve_entities=False`、`load_dtd=False`和`no_network=True`,以阻断XXE攻击路径。

参考链接

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