PostgreSQL 优化器统计信息可能会在视图、分区或子表中暴露采样数据HGVE-2025-E006

文章目录

环境

系统平台:N/A

版本:9.0.3,9.0.4

BUG/漏洞编码

HGVE-2025-E006

症状

PostgreSQL 优化器统计信息可能允许用户读取其本不应访问的采样数据。具体来说,统计信息可能允许用户读取那些行级安全策略原本要隐藏的数据。PostgreSQL 通过对表中列进行数据采样来维护统计信息,这些信息会在查询规划过程中被使用。在此次修复之前,用户可以构造一个"泄露型运算符"(leaky operator),从而绕过视图的访问控制列表(ACLs),以及在分区或表继承层级中的行级安全策略。可被访问到的统计数据主要包括直方图和最常见值(MCV)列表。CVE-2017-7484 和 CVE-2019-10130 原本旨在封堵这一类漏洞,但仍然存在缺口。受影响的版本包括 PostgreSQL 17.6、16.10、15.14、14.19 和 13.22 之前的版本。

触发条件

PostgreSQL 在进行查询优化时,会基于 pg_statistic 系统表中的采样数据进行估算。 然而,在执行计划生成过程中,某些自定义运算符被标记为 leakproof = false(默认值),攻击者可以利用这些非泄露型运算符,间接推断出统计信息中的敏感数据。 例如: 1.用户对某列没有访问权限; 2.但通过构造布尔表达式 (col = constant) 并结合查询计划器的选择性估算函数,仍可从直方图或 MCV 列表中泄露值分布信息。

解决方案

整体修复方案:pg_dump导出时在导出的sql文件末尾添加校验,用psql恢复时对sql文件进行校验。

1.修复pg_dump工具

2.修复函数psql工具的HandleSlashCmds

3.修复函数exec_command

补丁下载地址: 链接: https://pan.baidu.com/s/19Wz6FR7YzUfEFDxefTzAUg?pwd=jyhr 提取码: jyhr

相关推荐
ClouGence6 小时前
Oracle 数据同步为什么会出现数据不一致?长事务是常被忽略的原因
数据库·后端·oracle
飞将8 小时前
从零实现数据库(2)——HashIndex + IndexManager
数据库
Nturmoils1 天前
订单列表慢查询,先看 WHERE、ORDER BY 和 LIMIT
数据库
渣波1 天前
拒绝 SQL 焦虑!手把手带你用 NestJS + Prisma + DTO 写出“防弹”级后端代码
javascript·数据库·后端
倔强的石头_2 天前
KingbaseES 新版MySQL 兼容版体验:旧版迁移 + 功能实测
数据库
倔强的石头_5 天前
《Kingbase护城河》——数据库存储空间全景探测与精细化瘦身实战
数据库
冬奇Lab6 天前
每日一个开源项目(第134篇):Zvec - 阿里开源的嵌入式向量数据库,向量搜索界的 SQLite
数据库·人工智能·llm
ClouGence6 天前
Oracle CDC 架构优化:从主库直连到 DataGuard 备库同步
数据库·后端·oracle
无响应de神6 天前
三、用户与权限管理
数据库·mysql
麦聪聊数据7 天前
数据服务化时代:企业数据能力输出的核心路径
数据库