CVE-2026-29953SchemaHero 0.23.0版本中存在严重的SQL注入安全漏洞。该漏洞源于`plugins/postgres/lib/column.go`文件中`columnAsInsert`函数对`column`参数的处理缺乏严格的输入过滤。攻击者无需用户交互,仅需低权限即可通过网络利用此漏洞。通过构造恶意的列名参数,攻击者可执行任意SQL语句,导致数据库信息泄露、数据被篡改或服务不可用。鉴于该组件常用于自动化数据库迁移,建议用户立即排查并修复受影响环境,以防止潜在的数据安全风险。
该漏洞的核心在于SchemaHero处理PostgreSQL数据库迁移时的代码实现缺陷。在`plugins/postgres/lib/column.go`文件的`columnAsInsert`函数中,程序直接将用户可控的`column`参数拼接到SQL INSERT语句中,未使用参数化查询或对特殊字符进行转义。这种不安全的拼接方式允许攻击者通过注入单引号、分号等SQL元字符,提前闭合原有的SQL语法,并追加执行恶意的SQL命令。由于CVSS评分为7.4,且作用域变更(S:C),攻击成功后不仅影响SchemaHero应用本身,还可能波及后端数据库。虽然当前评估对机密性、完整性及可用性的影响等级为低(Low),但在特定场景下,攻击者仍可利用此漏洞窃取敏感数据或破坏表结构。攻击者可以利用此漏洞绕过身份验证,读取敏感配置信息,甚至进一步渗透数据库服务器。建议开发者审查相关代码逻辑,确保所有动态拼接的SQL片段均经过严格的白名单验证或使用安全的API接口。