PostgreSQL 的 CREATE STATISTICS 未检查 schema 的 CREATE 权限 HGVE-2025-E010

文章目录

环境

系统平台:N/A

版本:9.0.3,9.0.4,6.0.4,4.5.9,4.5.10,4.5.11

BUG/漏洞编码

HGVE-2025-E010,CVE-2025-12817

症状

在 PostgreSQL 的 CREATE STATISTICS 命令中,由于缺少权限检查,表的所有者可以在任意 schema 中创建统计对象,从而对其他具有 CREATE STATISTICS 权限的用户造成拒绝服务攻击(DoS)。

如果某用户之后尝试使用 CREATE STATISTICS 创建同名统计对象(并且拥有该 schema 的 CREATE 权限),将会因为名称已被占用而失败。受影响的版本为:PostgreSQL 18.1、17.7、16.11、15.15、14.20 和 13.23 之前的所有版本。

触发条件

CREATE STATISTICS 命令在执行时存在权限检查缺陷。虽然该命令要求用户必须是相关表的所有者,但未正确验证用户是否在目标 schema 上具有 CREATE 权限。这违反了 PostgreSQL 的安全模型,允许表所有者在没有相应 schema 创建权限的情况下,在该 schema 中创建统计对象,从而导致潜在的命名空间冲突和拒绝服务攻击。

解决方案

PostgreSQL 官方修复方案是在 CREATE STATISTICS 命令执行前增加对 schema CREATE 权限的检查:

/* 修复代码示例 */

AclResult aclresult;

// 在 CreateStatistics 函数中添加权限检查

aclresult = pg_namespace_aclcheck(statrelnamespace, GetUserId(), ACL_CREATE);if (aclresult != ACLCHECK_OK)

aclcheck_error(aclresult, OBJECT_SCHEMA, get_namespace_name(statrelnamespace));

补丁下载地址:

链接: https://pan.baidu.com/s/14h-y1lf64w8xJUR9jYBlFQ?pwd=cwh6 提取码: cwh6

相关推荐
海兰25 分钟前
【数据库】tdsql(MySQL )的事务隔离级别
android·数据库·mysql
灵析表格43 分钟前
Excel连接MySQL的函数化革命:灵析表格MySQL函数族业务应用分析
数据库·mysql·adb·excel·wps·灵析表格·excel公式盒子
todoitbo1 小时前
把发票台账接进 Codex:KingbaseES MCP 的一次只读风险排查实践
数据库·oracle·codex·kingbasees·mcp
Navicat中国1 小时前
使用 Navicat 轻松生成数据库测试数据
数据库·数据
zyplayer-doc1 小时前
核心制度不该被随手修改:用zyplayer-doc锁定文档和全部子文档
大数据·数据库·人工智能·笔记·pdf·ocr
一路向北North2 小时前
Spring AI(11) :ChatPDF-向量数据库、PDF处理、向量写入和向量搜索
数据库·人工智能·spring
暗暗别做白日梦2 小时前
CompletableFuture 并发统计
网络·数据库·oracle
ClouGence2 小时前
告别 Navicat!CloudDM:开源免费一站式数据库开发管理工具
数据库·sql·开源·数据库开发
灵析表格2 小时前
灵析表格功能函数深度分析报告
前端·数据库·microsoft
jaboo122 小时前
postgresql从入门到精通
数据库·postgresql·langchain