v0.11.4 — Security fix: SQL injection in aggregate API 漏洞概述 漏洞名称: SQL Injection in Aggregate API 漏洞编号: CWE-89, CVSS 8.8 严重程度: High (CVSS 8.8 — AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:L) 描述: 端点接受任意 SQL 表达式作为 和 查询参数。这些参数被直接传递给 (原始 SQL 字面量插入),允许任何经过身份验证的用户注入子查询并从任何表中提取数据。 影响范围 完整的 电子邮件表可通过构造的 参数提取。 SQLite 版本可通过 披露。 修复方案 所有对 的用户输入调用已替换为结构解析、基于模式的验证和 goqu 安全构造函数: - 函数名称通过精确映射键查找与两个允许列表进行验证:聚合函数( , , , , , , )和安全标量函数( , , , , , , 等)。 - 列名称通过 进行验证 —— 必须存在于实体模式中。 - 限定引用( )额外限制为根实体并显式连接表。 - 零参数系统函数被阻止 —— 标量函数至少需要一个模式列参数。 - 标量函数中的字符串字面量( )作为 Go 值传递,由 goqu 参数化。 - 连接表名称通过已知实体进行验证。 - -> 在过滤器/连接引用解析中(消除由于畸形 UUID 导致的恐慌 DoS)。 - 保护空订单字符串(恐慌 DoS)。 所有记录的聚合形式继续工作 升级 升级到 v0.11.4。不需要配置更改。