关键信息 漏洞详情 CVE编号: CVE-2025-63918 漏洞类型: Directory Traversal in PDFPatcher 受影响版本: 1.1.3.4663 及之前版本 受影响文件和功能: App/Common/FileHelper.cs 文件中的Image Export from PDF 功能 漏洞描述 PDFPatcher 1.1.3.4663 及以下版本中,由于在处理用户提供的文件路径时没有进行足够的验证,导致攻击者可以通过构造特定的目录遍历序列(例如 或 ),将导出的图片文件写入任意系统目录之外的目标位置。这一缺陷可能引发权限提升、数据篡改、系统完整性受损、远程代码执行(当与其他漏洞结合时),以及通过策略性文件放置的信息泄露。 影响 任意文件写入至可访问的文件系统位置 通过文件覆盖实现权限提升 数据篡改和系统完整性受损 远程代码执行的可能性 信息泄露 复现步骤/PoC 1. 启动PDFPatcher.exe 2. 选择 "Image Export" 或 "Extract Images from PDF" 功能 3. 选择含有图片的任意有效PDF文件 4. 当提示输出位置时,使用包含目录遍历序列的路径(例如 ) 5. 点击 "Export Images" 或等效按钮开始提取 6. 确认图片文件成功写入所选择的目录,验证已绕过目录限制 7. 检查穿越目录中的文件创建情况,以确认漏洞存在 根本原因 FileHelper.cs组件在执行文件写入操作前,未能对用户提供的输出路径进行清理或验证。应用接收含有目录遍历序列的原始用户输入,且直接在文件系统操作中使用这些路径,而不进行正则化或针对安全基目录进行验证。这允许攻击者离开预期的输出目录,将文件写入应用进程可访问的任意位置。 缓解建议 路径正则化: 使用 Path.GetFullPath() 对所有用户提供的路径进行正则化和正则化,并确保它们仍位于预期的基目录内。 输入验证: 拒绝包含 、 或编码变体的路径。 白名单: 实施对允许的输出目录的严格白名单策略,拒绝目录范围之外的路径。 安全文件操作: 使用 Path.Combine() 并进行验证来构建文件路径,确保它们解析至预期位置。 参考资料 CWE-22: Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal') PDFPatcher GitHub仓库 OWASP关于路径穿越的攻击 OWASP输入验证 Cheat Sheet