PostgreSQL 全球开发组于 5 月 14 日发布所有支持版本更新(18.4/17.10/16.14/15.18/14.23),修复 11 个安全漏洞 和 60+ bug。其中 CVE-2026-6473(整数溢出)和 CVE-2026-6475(文件覆盖)CVSS 评分达 8.8(高危),可能导致 RCE 或系统文件篡改。PostgreSQL 14 将于 2026 年 11 月 12 日停止支持。
完整变更列表请查看发布说明 。
PostgreSQL 14 终止通知
PostgreSQL 14 将于 2026 年 11 月 12 日停止接收修复。如果你是 在生产环境中运行 PostgreSQL 14 时,我们建议你 计划升级到更新且受支持的 PostgreSQL 版本。请参见我们的 版本控制政策 ,了解更多信息。
安全问题
CVE-2026-6472:PostgreSQL 创建类型不检查多范围模式创建权限
CVSS v3.1 基础评分:5.4
支持,易受攻击版本:14 – 18。
PostgreSQL 创建类型中缺少授权允许对象创建器劫持使用 search_path 查找用户自定义类型(包括扩展定义类型)的其他查询。也就是说,受害者会执行攻击者选择的任意 SQL 函数。PostgreSQL 18.4、17.10、16.14、15.18 和 14.23 之前的版本受影响。
PostgreSQL 项目感谢 Jelte Fennema-Nio 报告了这个问题。
CVE-2026-6473:PostgreSQL 服务器通过整数环绕处理分配规模不足
CVSS v3.1 基础评分:8.8
支持,易受攻击版本:14 – 18。
多种 PostgreSQL 服务器功能的整数环绕允许应用输入提供者使服务器分配规模不足并写出边界外。这导致了分段错误。PostgreSQL 18.4、17.10、16.14、15.18 和 14.23 之前的版本受影响。
PostgreSQL 项目感谢 Anemone、A1ex、Xint Code、王志和、傅景洲、Pavel Kohout、Petr Simecek、www.aisle.com、Calif.io 的 Bruce Dang 和 Sven Klemm 报告了这一问题。
CVE-2026-6474:PostgreSQL timeofday() 可以泄露服务器内存部分
CVSS v3.1 基础评分:4.3
支持,易受攻击版本:14 – 18。
PostgreSQL timeofday() 函数中的外部控制格式字符串允许攻击者通过精心设计的时区获取服务器内存的一部分。PostgreSQL 18.4、17.10、16.14、15.18 和 14.23 之前的版本受影响。
PostgreSQL 项目感谢 Xint Code 报告了这个问题。
CVE-2026-6475:PostgreSQL pg_basebackup 和 pg_rewind 可以覆盖 origin 超级用户选择的无关文件
CVSS v3.1 基础评分:8.8
支持,易受攻击版本:14 – 18。
以下为 PostgreSQL 的符号链接 pg_basebackup 纯格式和 pg_rewind 允许 Origin 超级用户覆盖本地文件,例如 /var/lib/postgres/.bashrc,那个劫持操作系统账户的软件。由于 shared_preload_libraries 等功能,在这些命令后启动服务器会隐含信任原始超级用户。因此,只有在这些命令和服务器启动之间采取相关操作,比如将文件移动到其他虚拟机或对虚拟机进行快照时,攻击才具有实际意义。PostgreSQL 18.4、17.10、16.14、15.18 和 14.23 之前的版本受影响。
PostgreSQL 项目感谢 Valery Gubanov、腾讯玄武实验室 XlabAI 团队、Atuin 自动漏洞发现引擎、刘占鹏(pkugenuine(at)gmail(dot)com)、王冠南(wgnbuaa(at)gmail(dot)com)和李冠成(lgcpku(at)gmail(dot)com)报告此问题。
CVE-2026-6476:PostgreSQL pg_createsubscriber 允许通过订阅名注入 SQL
CVSS v3.1 基础评分:7.2
支持,易受攻击版本:17 – 18。
PostgreSQL pg_createsubscriber 中的 SQL 注入允许攻击者使用 pg_create_subscription 作为超级用户执行任意 SQL 的权利。攻击在 pg_createsubscriber 下一次运行时生效。在主要版本 17 和 18 中,PostgreSQL 18.4 和 17.10 之前的次要版本会受到影响。PostgreSQL 17 之前的版本不受影响。
PostgreSQL 项目感谢余昆鹏报告了这个问题。
CVE-2026-6477:PostgreSQL libpq lo_* 函数允许服务器超级用户覆盖客户端栈内存
CVSS v3.1 基础评分:8.8
支持,易受攻击版本:14 – 18。
在 PostgreSQL libpq 中使用本质危险函数 PQfn(..., result_is_int=0, ...) lo_export(), lo_read(), lo_lseek64() 和 lo_tell64() 函数允许服务器超级用户用 任意大响应。比如 gets(), PQfn(..., result_is_int=0, ...) 将任意长度、服务器确定的数据存储到未指定的缓冲区中 尺寸。因为 psql 中的 \lo_export 命令和 pg_dump 调用都一样 lo_read()),服务器超级用户可以覆盖 pg_dump 或 psql 栈内存。PostgreSQL 18.4、17.10、16.14、15.18 和 14.23 之前的版本受影响。
PostgreSQL 项目感谢余昆鹏和马丁·海斯特曼报告了这个问题。
CVE-2026-6478:PostgreSQL 通过隐蔽时序通道披露 MD5 哈希密码
CVSS v3.1 基础评分:6.5
支持,易受攻击版本:14 – 18。
与 PostgreSQL 认证中的 MD5 哈希密码相比,隐蔽时序通道允许攻击者恢复足够的用户凭证进行认证。这不会影响所有支持版本默认的 scram-sha-256 密码。然而,当前数据库可能使用源自 PostgreSQL 13 或更早版本升级的 MD5 哈希密码。PostgreSQL 18.4、17.10、16.14、15.18 和 14.23 之前的版本受影响。
PostgreSQL 项目感谢 Joe Conway 报告了这个问题。
CVE-2026-6479:PostgreSQL SSL/GSS 初始化导致拒绝服务,通过不受控递归
CVSS v3.1 基础评分:7.5
支持,易受攻击版本:14 – 18。
PostgreSQL SSL 和 GSS 协商中的不受控递归使攻击者能够连接到 PostgreSQL AF_UNIX 套接字,实现持续的拒绝服务。如果 SSL 和 GSS 都被禁用,攻击者可以通过访问 PostgreSQL TCP 套接字来实现同样的操作。PostgreSQL 18.4、17.10、16.14、15.18 和 14.23 之前的版本受影响。
PostgreSQL 项目感谢 Calif.io 与 Claude 和 Anthropic Research 合作报告了这一问题。
CVE-2026-6575:PostgreSQL pg_restore_attribute_stats 接受的值会导致查询计划读取超过统计数组的末尾
CVSS v3.1 基础评分:4.3
支持、易受攻击版本:18。
PostgreSQL 函数 pg_restore_attribute_stats() 中的缓冲区过度读取接受长度不匹配的数组值,导致查询计划读取超过某个数组的末尾。这使得表维护者能够推断出数组末端之后的内存值。在主要版本 18 中,PostgreSQL 18.4 之前的次要版本会受到影响。PostgreSQL 18 之前的版本不受影响。
PostgreSQL 项目感谢 Jeroen Gui 报告了这个问题。
CVE-2026-6637:PostgreSQL refint 支持栈缓冲区溢出和 SQL 注入
CVSS v3.1 基础评分:8.8
支持,易受攻击版本:14 – 18。
PostgreSQL 模块中的栈缓冲区溢出允许非特权数据库用户作为操作系统用户执行任意代码。如果应用程序将用户控制的列声明为 refint 级联主键,并促进对该列的用户控制更新,则可能进行不同的攻击。在这种情况下,SQL 注入允许主键更新值提供者作为执行主键更新的数据库用户执行任意 SQL。PostgreSQL 18.4、17.10、16.14、15.18 和 14.23 之前的版本受影响。
PostgreSQL 项目感谢 Nikolay Samokhvalov 报告了这一问题。
CVE-2026-6638:PostgreSQL 刷新发布允许通过表名注入 SQL
CVSS v3.1 基础评分:3.7
支持,易受攻击版本:16 – 18。
PostgreSQL 逻辑复制中的 SQL 注入 更改订阅......REFRESH PUBLICATION 允许订阅表创建者使用订阅的发布端凭证执行任意 SQL。该攻击将在下一次 REFRESH 发布时生效。在主要版本 16、17 和 18 中,PostgreSQL 18.4、17.10 和 16.14 之前的次要版本也会受到影响。PostgreSQL 16 之前的版本不受影响。
PostgreSQL 项目感谢 Aisle Research 的 Pavel Kohout 报告了这一问题。
漏洞修复与改进
本次更新修复了过去几个月报告的 60 多个漏洞。以下列出的问题影响 PostgreSQL 18。其中一些问题也可能影响其他支持的 PostgreSQL 版本。
- 修正在使用唯一索引的非确定性排序时可能返回错误结果的查询。
- 修复外键触发器递延性丧失的问题。此前,定义为
可递延的外键初始延迟时,表现为不可延期在被设置为“未强制执行”状态后,又恢复为强制执行状态。如果你用的是带有这个问题的外键,安装更新后可以通过设置为“非强制”再设置回强制激活来修复。 - 提升规划师对更多案件应用分区剪枝的能力。
- 修复自连接移除,以处理仅为布尔列的连接子句,例如
ON t1.boolcol。 - 关于虚拟生成列的几个修正,包括
插入......当排除(EXCLUDED)引用虚拟生成的列时,冲突中(ON CONFLICT)是有效的。 - 当
MERGE遇到并发更新的 时,报告序列化失败 “可重复读取”或“可序列化”中的元组 隔离模式 。 - 修正
创建表格 ...比如......包括源表中一个或多个列丢失的情况统计数据。 - 修正
无重叠以允许域名。 - 禁止通过
多范围让复合类型成为自身的成员。 - 修复
array_agg(anyarray)并行执行时有时错误的结果。 - 在恢复增量备份时防止膨胀。
- 防止卡住的逻辑复制槽同步工作进程阻止备份服务器的升级。
- 让
pg_aios系统视图中的PID列显示NULL而不是0,当条目没有拥有进程时。 - 修复复制激活时
pg_stat_replication仍显示零延迟的情况。 - 正确显示
GROUP BY中使用的 JOIN 别名变量。 - 如果启动进程失败,在退出邮局管理员前正确关闭其他子进程。
- 修复可能导致待机服务器从旧小版本的主节点跟随 WAL 进入崩溃重启循环的竞赛状态。
- 当逻辑复制正在主动发布数据时,防止 Wallsender 进程关闭时出现无限期等待。
- 确保恢复期间空闲空间地图的更改持续存在。这可能会在升级后对备用服务器的性能产生影响。
- 修复备份解压和 tar 解析代码中的各种 bug
pg_basebackup和pg_verifybackup。 - 确保
pg_dumpall不会跳过带有悬挂的授予者 OID 的角色授权,恢复 PostgreSQL 16 之前的行为。如果源服务器是 PostgreSQL 16 或更高版本,则会发出关于缺少 grantor 的警告。 - 修复
pg_upgrade连接旧源服务器时使用正确的协议版本。 - 在使用
RANGE_TABLE选项时,pg_overexplain中修正输出。 - 修复
postgres_fdw因连接失败过早清理导致的崩溃。
该版本还将时区数据文件更新为 tzdata 2026b 版本,届时不列颠哥伦比亚省(美国/温哥华)将从 2026 年 11 月起全年实行 UTC-07(实际上永久夏令时)。本版本假设从那时起他们的 TZ 缩写将改为 MST(尽管这可能会有所变化)。摩尔多瓦也有历史修正,自 2022 年以来一直采用欧盟夏令时的过渡时间。
更新
所有 PostgreSQL 更新版本均为累积发布。与其他次要版本一样,用户无需转储和重新加载数据库或使用 pg_upgrade 为了应用本次更新发布;你可以简单地关闭 PostgreSQL, 更新它的二元论。
跳过一个或多个更新版本的用户可能需要执行额外的更新后步骤;详情请参阅早期版本的发布说明。
更多详情请参见发布说明 。
链接
版权申明:内容来源网络,版权归原创者所有,如有侵权请联系删除
想了解更多行业资讯
扫码关注👇

了解更多考试相关
扫码添加上智启元官方客服微信👇

17认证网








