CVE-2026-33981changedetection.io是一款免费开源的网页变更检测工具。在0.54.7版本之前,其`jq:`和`jqraw:`包含筛选器表达式存在安全缺陷,允许使用`jq`的`env`内置函数。该漏洞使得经过身份验证的用户(或默认无密码配置下的未认证用户)能够通过该功能读取服务器端的所有进程环境变量。这会导致敏感信息泄露,包括密码哈希、代理地址及容器密钥。攻击者利用此漏洞可轻易获取高敏感度的配置数据。
该漏洞的根源在于changedetection.io对`jq`过滤器的实现缺乏必要的安全限制。`jq`提供了一个内置函数`env`,专门用于读取调用进程的环境变量。在受影响版本中,应用在处理用户提供的`jq:`或`jqraw:`筛选器表达式时,未正确禁用该敏感内置函数。当用户配置监视任务时,若在筛选器字段中注入包含`env`的恶意表达式(例如`env.SALTED_PASS`),服务器端在执行该jq脚本时会将环境变量的值解析并作为快照的一部分返回给用户。由于默认配置下往往不需要身份验证,攻击者可轻易构造特殊请求,利用此机制窃取系统级敏感数据。受影响的数据包括用于身份验证的`SALTED_PASS`哈希值、Playwright驱动URL、HTTP代理凭证以及传递给容器的其他密钥。该漏洞主要威胁数据的机密性,虽然不会直接影响系统完整性或可用性,但可能导致服务器被进一步入侵。