CVE-2026-32611Glances是一款开源跨平台系统监控工具,用于监控CPU、内存、磁盘、网络等系统资源。该漏洞存在于Glances的DuckDB导出模块中,属于SQL注入漏洞。攻击者可以通过构造恶意的表名或列名,利用监控统计数据中未经过滤的用户输入,直接注入到SQL语句中执行。虽然DuckDB INSERT操作已使用参数化查询(?占位符),但DDL(数据定义语言)构造和表名引用部分未对标识符名称进行转义或参数化处理,攻击者无需认证即可利用此漏洞获取敏感数据或破坏数据库完整性。
该漏洞的根本原因在于DuckDB导出模块(glances/exports/glances_duckdb/__init__.py)中的SQL语句构造方式不安全。具体来说,表名和列名直接通过Python f-string插值到SQL语句中,而没有进行适当的标识符转义或参数化。例如,在创建表或引用表名时,代码直接使用f"CREATE TABLE {table_name}..."的格式,而table_name来源于监控统计数据。虽然INSERT语句的值部分使用了参数化查询(?占位符),但标识符部分(如表名、列名)仍然存在注入风险。攻击者可以通过在表名或列名中注入SQL元字符或SQL语句片段,如使用单引号、分号或注释符等,来破坏SQL语句结构,执行未授权的数据库操作。修复方案应使用DuckDB的标识符转义机制或psycopg.sql类似的组合对象来安全处理标识符名称。