CVE-2025-65025esm.sh是一个面向现代Web开发的无构建内容分发网络(CDN)服务。在136版本之前,esm.sh CDN服务在提取NPM包tarball文件时存在路径遍历漏洞。攻击者可以制作包含特殊构造文件路径的恶意NPM包(例如package/../../tmp/evil.js),当esm.sh下载并解压该包时,文件可能被写入服务器上的任意位置,从而逃逸出预期的解压目录。该漏洞可能导致服务器文件系统被攻击者控制,植入恶意代码或覆盖系统文件,对服务完整性和安全性造成严重威胁。此问题已在136版本中修复。
该漏洞属于经典的路径遍历(Path Traversal)安全问题,发生在NPM包的tarball文件解压环节。攻击者利用tarball压缩包内文件路径中的"../"序列,绕过安全检查,将文件解压到目标目录之外的任意位置。具体来说,当攻击者创建一个NPM包并在package.json中指定文件路径为类似"../../tmp/evil.js"的形式时,esm.sh服务器在解压过程中未对路径进行充分的规范化处理和安全校验,导致文件被写入/tmp目录或其他系统敏感目录。攻击者可通过此方式覆写服务器上的现有文件、植入Webshell或后门程序,从而实现远程代码执行。由于esm.sh作为公共CDN服务被大量前端项目依赖,此漏洞的影响范围可能非常广泛。修复方案主要是对解压路径进行规范化处理,确保所有文件操作都在预设的根目录范围内进行。