SSRF via Jint Scripting Engine HTTP Functions Due to Missing SSRF Protection on "Jint" HttpClient 漏洞概述 Squidex 中存在一个服务端请求伪造(SSRF)漏洞。该漏洞是由于 Jint HTTP 客户端(用于脚本引擎函数,如 、 等)缺少 SSRF 保护机制。拥有低权限(如 Schema 编辑权限)的攻击者可以强制服务器向攻击者控制的或内部端点发起任意出站 HTTP 请求,从而导致内部服务访问、云元数据泄露(如 IMDS)及凭证暴露。 影响范围 受影响版本:7.21.0 受影响用户:任何 Squidex 部署(云或自托管),需要拥有 Schema/规则编辑权限的低权限认证用户。 攻击后果: - 云环境:可检索实例元数据(IAM 凭证、服务账户令牌等),用于横向移动。 - 本地部署:可探测内部网络(MongoDB, Redis, Elasticsearch 等)。 - 攻击隐蔽性强,恶意脚本会持久化在 Schema 定义中并在每次内容请求时触发。 修复方案 在注册 Jint 客户端时启用 SSRF 保护。 修复代码示例: 漏洞利用代码 (PoC) 1. 脚本代码 (Query Script) 在 Schema 的 Scripts 中插入以下代码: 2. 触发代码 (API Call) 调用内容 API 触发脚本执行: