CVE-2026-29090Rucio在1.30.0及后续特定版本中存在SQL注入漏洞。当启用postgres_meta插件时,FilterEngine.create_postgres_query()函数未正确过滤用户输入,直接使用.format()拼接SQL。攻击者可通过DID搜索端点注入恶意SQL,执行任意数据库命令,可能导致数据泄露、篡改或通过PostgreSQL功能实现代码执行。
该漏洞源于Rucio的`FilterEngine.create_postgres_query()`方法在处理DID搜索请求时的不安全实现。当系统配置使用`postgres_meta`作为元数据插件时,攻击者控制的过滤键和值通过Python字符串的`.format()`方法直接插入到原始SQL字符串中。随后,该字符串被传递给`psycopg3`库的`sql.SQL()`对象。由于字符串在传递前已被格式化,`psycopg3`将其视为受信任的SQL语法而非参数化数据,从而允许攻击者注入任意SQL命令。利用此漏洞,具备低权限的认证用户可读取敏感表、修改或删除元数据,甚至利用PostgreSQL的`COPY ... FROM PROGRAM`特性在服务器端执行系统命令,获取完全控制权。