CVE-2026-33130Uptime Kuma是一款开源的自托管监控工具。在1.23.0至2.2.0版本中,针对SSTI漏洞的修复并不完善,未能完全阻止服务端模板注入。由于Liquid引擎的缓解措施仅拦截引用路径,攻击者可利用未引用的绝对路径绕过限制,通过require.resolve()回退机制读取服务器上的任意文件。该问题已在2.2.1版本中修复。
该漏洞源于Uptime Kuma试图通过配置LiquidJS引擎的root、relativeReference和dynamicPartials选项来防止SSTI,但这种修复机制存在缺陷。它仅对引用的路径有效,而无法处理未引用的绝对路径。当攻击者构造恶意payload时,若使用未引用的绝对路径(如/etc/passwd),前两步的文件解析检查会被成功绕过。随后,代码执行流程进入liquid.node.js中的require.resolve()回退逻辑,由于该步骤缺乏必要的包含性检查,导致路径解析成功,从而读取服务器上的任意文件。值得注意的是,引用路径被拦截仅仅是因为引号导致require.resolve抛出MODULE_NOT_FOUND错误,而非有效的安全策略。攻击者可利用此漏洞在低权限下无需交互即可读取敏感文件。