CVE-2026-23644esm.sh是一个面向Web开发的无构建内容分发网络(CDN)服务。该服务在Go伪版本0.0.0-20260116051925-c62ab83c589e之前存在路径遍历漏洞。由于path.Clean函数在处理恶意tar文件时仅进行路径规范化操作,无法有效防止绝对路径的写入,攻击者可利用此漏洞在服务器文件系统中写入任意文件。该漏洞源于此前修复的不完整性,攻击者可通过构造包含绝对路径的恶意tar文件包,绕过安全检查实现路径遍历攻击。此漏洞无需认证即可远程利用,对系统完整性造成严重影响。
该漏洞的根本原因在于path.Clean函数的局限性。path.Clean能够将路径规范化为标准形式(如去除多余的斜杠和处理.、..等),但它不会检测或阻止绝对路径。当esm.sh处理包含恶意tar文件的内容时,如果tar文件中包含以/开头的绝对路径,path.Clean会保留这些路径不变,导致文件被提取到服务器文件系统的任意位置。攻击者可以通过上传精心构造的tar文件,在esm.sh的服务器上创建或覆盖任意文件,从而可能实现代码执行或其他恶意操作。该漏洞的修复版本为Go伪版本0.0.0-20260116051925-c62ab83c589e,对应提交9d77b88c320733ff6689d938d85d246a3af9af16。修复需要在使用path.Clean后再添加绝对路径检测逻辑,拒绝包含绝对路径的tar文件条目。