文章目录
环境
系统平台:N/A
版本:9.0.3,9.0.4,9.0.5,4.5.8,4.5.10,4.5.11,6.0.4
BUG/漏洞编码
HGVE-2026-E007
症状
PostgreSQL CREATE TYPE 中缺少授权检查,允许对象创建者劫持其他使用 search_path 查找用户自定义类型的查询,包括扩展定义的类型。也就是说,受害者会执行攻击者选择的任意 SQL 函数。PostgreSQL 18.4、17.10、16.14、15.18 和 14.23 之前的版本受影响。
触发条件
漏洞根因是 CREATE TYPE 在创建 multirange 相关对象时未充分校验目标 schema 的 CREATE 权限。攻击者可在可控 schema 中创建恶意类型或相关函数。当其他查询通过 search_path 查找用户自定义类型时,解析过程可能命中攻击者布置的对象,进而执行攻击者选择的 SQL 函数。
解决方案
代码修复应在 CREATE TYPE 创建 multirange 相关对象时补充 schema CREATE 权限校验,确保对象创建者只能在其具备创建权限的 schema 中创建相关类型及附属对象。同时,在类型解析流程中应避免让 search_path 命中攻击者无权影响的对象。修复后需要增加回归测试,覆盖无 CREATE 权限用户创建 multirange 类型、扩展定义类型以及 search_path 解析用户自定义类型的场景
安装漏洞补丁包。 下载地址:
v9.0.3,v9.0.4,v9.0.5 :
链接: https://pan.baidu.com/s/15nI0Vgxmy5Yy-hCspSOm2g?pwd=qx2e 提取码: qx2e。
V4.5.8,V4.5.10,V4.5.11,V6.0.4:
链接: https://pan.baidu.com/s/1wbOp7Qhb8-pepw7ko63zag?pwd=b56y 提取码: b56y 。