CVE-2026-32306OneUptime是一款开源的在线服务监控和管理解决方案。在10.0.23之前的版本中,其遥测聚合API存在严重的SQL注入漏洞。攻击者可以通过API接口传入恶意的aggregationType、aggregateColumnName和aggregationTimestampColumnName参数,这些参数未经任何安全处理直接被拼接到ClickHouse数据库的SQL查询语句中。由于使用了.append()方法将这些参数直接追加到SQL语句中(文档标注为"可信SQL"),导致原有的参数验证机制失效。攻击者利用此漏洞可以绕过认证限制,以低权限用户身份注入任意SQL语句,进而实现读取所有租户的遥测数据、修改数据库内容,甚至通过ClickHouse表函数实现远程代码执行。该漏洞CVSS评分高达9.9,属于严重级别,对系统安全性构成极大威胁。建议受影响用户立即升级到10.0.23或更高版本以修复此漏洞。
漏洞根源在于OneUptime的遥测聚合功能模块,该模块负责从ClickHouse数据库中聚合和分析监控数据。问题代码位于处理聚合请求的API端点,该端点接收三个关键参数:aggregationType(聚合类型)、aggregateColumnName(聚合列名)和aggregationTimestampColumnName(聚合时间戳列名)。开发者使用.append()方法将这些用户可控参数直接追加到SQL查询字符串中,错误地认为这些参数是可信的。然而,.append()方法只是简单的字符串拼接,不会进行任何SQL转义或参数化处理。攻击者可以通过构造特殊的SQL片段,如使用单引号、UNION SELECT、注释符等,突破原有的查询结构。由于ClickHouse支持表函数和外部表查询,攻击者甚至可以利用clickhouse_remote函数实现远程代码执行或在数据库中写入恶意数据。漏洞利用的关键前提是攻击者需要具有认证用户身份,但低权限账户即可完成攻击,这大大降低了利用门槛。