PostgreSQL 全球开发组发布了对所有受支持的 PostgreSQL 版本的更新,包括 18.4、17.10、16.14、15.18 和 14.23。此版本修复了过去几个月报告的 11 个安全漏洞和 60 多个错误。
如需查看完整的变更列表,可查看发行说明。
PostgreSQL 14 将于 2026 年 11 月 12 日停止接收修复程序。对于在生产环境中运行 PostgreSQL 14 的用户,建议计划升级到更新、受支持的 PostgreSQL 版本。可参阅版本控制策略了解更多信息。
CVE-2026-6472:PostgreSQLCREATE TYPE未检查multirange schema 的CREATE权限
CVSS v3.1 基础分:5.4
受影响的受支持版本:14 - 18。
PostgreSQL 中CREATE TYPE语句的授权缺失,使得对象创建者能够劫持其他使用search_path查找用户定义类型(包括扩展定义类型)的查询。也就是说,受害者将执行攻击者指定的任意 SQL 函数。受影响的版本包括 PostgreSQL 18.4 之前的版本,以及 17.10、16.14、15.18 和 14.23。
CVE-2026-6473:PostgreSQL 服务器因整数回绕导致内存分配不足
CVSS v3.1 基础分:8.8
受影响的受支持版本:14 - 18。
PostgreSQL 服务器的多个特性中存在的整数回绕问题,允许应用程序输入提供程序导致服务器分配的内存不足,从而造成写入越界。这会导致段错误。PostgreSQL 18.4、17.10、16.14、15.18 和 14.23 之前的版本均受影响。
CVE-2026-6474:PostgreSQLtimeofday()可能泄露部分服务器内存
CVSS v3.1 基础分:4.3
受影响的受支持版本:14 - 18。
PostgreSQL timeofday()函数中外部控制的格式字符串允许攻击者通过精心构造的时区信息来获取部分服务器内存。受影响的版本包括 PostgreSQL 18.4、17.10、16.14、15.18 和 14.23 之前的版本。
CVE-2026-6475:PostgreSQLpg_basebackup和pg_rewind可能覆盖由源端超级用户指定的不相关文件
CVSS v3.1 基础分:8.8
受影响的受支持版本:14 - 18。
在 PostgreSQLpg_basebackupplain 及pg_rewind中,跟随符号允许源端超级用户覆盖本地文件,例如 /var/lib/postgres/.bashrc,劫持操作系统帐户。由于 shared_preload_libraries 等特性,在这些命令之后启动服务器仍然会隐式地信任源端超级用户。因此,只有在这些命令和服务器启动之间采取相关操作(例如将文件移动到不同的虚拟机或对虚拟机进行快照)时,该攻击才会产生实际影响。PostgreSQL 18.4、17.10、16.14、15.18 和 14.23 之前的版本均受影响。
CVE-2026-6476:PostgreSQLpg_createsubscriber允许通过订阅名称触发 SQL 注入
CVSS v3.1 基础分:7.2
受影响的受支持版本:17 - 18。
PostgreSQL 中的pg_createsubscriber存在 SQL 注入漏洞,允许拥有相应pg_create_subscription权限的攻击者以超级用户身份执行任意 SQL 语句。攻击会在pg_createsubscriber下次运行时生效。PostgreSQL 17 和 18 这两个主要版本以及 18.4 和 17.10 之前的次要版本均受影响。PostgreSQL 17 之前的版本不受影响。
CVE-2026-6477:PostgreSQL libpqlo_* 函数允许服务器超级用户覆盖客户端栈内存
CVSS v3.1 基础分:8.8
支持的易受攻击版本:14 - 18。
PostgreSQL libpq 中的lo_export()、lo_read(、lo_lseek64()和lo_tell64()函数使用了具有固有风险的PQfn(..., result_is_int=0, ...)函数,这使得服务器超级用户能够通过任意大小的响应覆盖客户端栈缓冲区。与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 之前的版本。
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 之前的版本。
CVE-2026-6479:PostgreSQL SSL/GSS 初始化因不受控递归导致拒绝服务
CVSS v3.1 基础分:7.5
支持的易受攻击版本:14 - 18。
PostgreSQL SSL 和 GSS 协商中不受控制的递归漏洞允许攻击者连接到 PostgreSQL AF_UNIX socket,从而实现持续拒绝服务攻击。如果 SSL 和 GSS 都被禁用,攻击者也可以通过访问 PostgreSQL TCP socket 来实现同样的效果。PostgreSQL 18.4、17.10、16.14、15.18 和 14.23 之前的版本均受此漏洞影响。
CVE-2026-6575:PostgreSQLpg_restore_attribute_stats接受的值会导致查询计划读取超出统计信息数组末尾的内容
CVSS v3.1 基础分:4.3
支持的易受攻击版本:18。
PostgreSQL 函数pg_restore_attribute_stats()中的缓冲区越界读取漏洞允许读取长度不匹配的数组值,这会导致查询计划读取超出数组末尾的数据。这使得表维护者能够推断出超出数组末尾的内存值。此漏洞影响 PostgreSQL 18.4 之前的小版本,但 PostgreSQL 18 之前的版本不受影响。
CVE-2026-6637:PostgreSQLrefint允许栈缓冲区溢出和 SQL 注入漏洞
CVSS v3.1 基础分:8.8
受影响的受支持版本:14 - 18。
PostgreSQL 模块refint中的栈缓冲区溢出漏洞允许非特权数据库用户以运行数据库的操作系统用户身份执行任意代码。如果应用程序将用户控制的列声明为refint级联主键,并允许用户对该列进行更新,则可能出现另一种不同的攻击方式。在这种情况下,SQL 注入允许主键更新值提供程序以执行主键更新的数据库用户身份执行任意 SQL 语句。PostgreSQL 18.4、17.10、16.14、15.18 和 14.23 之前的版本均受影响。
CVE-2026-6638:PostgreSQLREFRESH PUBLICATION允许通过表名触发 SQL 注入
CVSS v3.1 基础分:3.7
受影响的受支持版本:16 - 18。
PostgreSQL 逻辑复制中的ALTER SUBSCRIPTION ... REFRESH PUBLICATION存在 SQL 注入漏洞,允许订阅表创建者使用订阅的发布端凭据执行任意 SQL 语句。该攻击将在下一次执行REFRESH PUBLICATION时生效。在 16、17 和 18 这三个主要版本中,PostgreSQL 18.4、17.10 和 16.14 之前的次要版本均受影响。PostgreSQL 16 之前的版本不受影响。
更多详情可查看官方公告。