PostgreSQL 18.4, 17.10 closing 11 CVEs

PostgreSQL 18.4, 17.10 closing 11 CVEs

PostgreSQL 18.4, 17.10 发布,修复 11 个 CVE 漏洞

May 14, 2026: PostgreSQL 18.4, 17.10, 16.14, 15.18, and 14.23 Released! 2026 年 5 月 14 日:PostgreSQL 18.4、17.10、16.14、15.18 和 14.23 正式发布!

The PostgreSQL Global Development Group has released an update to all supported versions of PostgreSQL, including 18.4, 17.10, 16.14, 15.18, and 14.23. This release fixes 11 security vulnerabilities and over 60 bugs reported over the last several months. For the full list of changes, please review the release notes. PostgreSQL 全球开发组已发布所有受支持 PostgreSQL 版本的更新,包括 18.4、17.10、16.14、15.18 和 14.23。此版本修复了过去几个月中报告的 11 个安全漏洞和 60 多个错误。有关更改的完整列表,请查阅发行说明。

PostgreSQL 14 EOL Notice

PostgreSQL 14 生命周期结束 (EOL) 通知

PostgreSQL 14 will stop receiving fixes on November 12, 2026. If you are running PostgreSQL 14 in a production environment, we suggest that you make plans to upgrade to a newer, supported version of PostgreSQL. Please see our versioning policy for more information. PostgreSQL 14 将于 2026 年 11 月 12 日停止接收修复程序。如果您正在生产环境中使用 PostgreSQL 14,我们建议您制定计划升级到更新且受支持的 PostgreSQL 版本。请参阅我们的版本控制策略以获取更多信息。


Security Issues

安全问题

CVE-2026-6472: PostgreSQL CREATE TYPE does not check multirange schema CREATE privilege CVE-2026-6472:PostgreSQL CREATE TYPE 未检查 multirange 模式的 CREATE 权限 CVSS v3.1 Base Score: 5.4 | Supported, Vulnerable Versions: 14 - 18. CVSS v3.1 基础评分:5.4 | 受支持且受影响的版本:14 - 18。 Missing authorization in PostgreSQL CREATE TYPE allows an object creator to hijack other queries that use search_path to find user-defined types, including extension-defined types. That is to say, the victim will execute arbitrary SQL functions of the attacker’s choice. Versions before PostgreSQL 18.4, 17.10, 16.14, 15.18, and 14.23 are affected. The PostgreSQL project thanks Jelte Fennema-Nio for reporting this problem. PostgreSQL CREATE TYPE 中缺失的授权允许对象创建者劫持其他使用 search_path 来查找用户定义类型(包括扩展定义类型)的查询。也就是说,受害者将执行攻击者指定的任意 SQL 函数。PostgreSQL 18.4、17.10、16.14、15.18 和 14.23 之前的版本均受影响。PostgreSQL 项目感谢 Jelte Fennema-Nio 报告此问题。

CVE-2026-6473: PostgreSQL server undersizes allocations, via integer wraparound CVE-2026-6473:PostgreSQL 服务器因整数回绕导致分配空间不足 CVSS v3.1 Base Score: 8.8 | Supported, Vulnerable Versions: 14 - 18. CVSS v3.1 基础评分:8.8 | 受支持且受影响的版本:14 - 18。 Integer wraparound in multiple PostgreSQL server features allows an application input provider to cause the server to undersize an allocation and write out-of-bounds. This results in a segmentation fault. Versions before PostgreSQL 18.4, 17.10, 16.14, 15.18, and 14.23 are affected. The PostgreSQL project thanks Anemone, A1ex, Xint Code, Jihe Wang, Jingzhou Fu, Pavel Kohout, Petr Simecek, www.aisle.com, Bruce Dang of Calif.io, and Sven Klemm for reporting this problem. PostgreSQL 服务器多个功能中的整数回绕允许应用程序输入提供者导致服务器分配空间不足并发生越界写入,从而导致段错误。PostgreSQL 18.4、17.10、16.14、15.18 和 14.23 之前的版本均受影响。PostgreSQL 项目感谢 Anemone、A1ex、Xint Code、Jihe Wang、Jingzhou Fu、Pavel Kohout、Petr Simecek、www.aisle.com、Calif.io 的 Bruce Dang 以及 Sven Klemm 报告此问题。

CVE-2026-6474: PostgreSQL timeofday() can disclose portions of server memory CVE-2026-6474:PostgreSQL timeofday() 可能泄露部分服务器内存 CVSS v3.1 Base Score: 4.3 | Supported, Vulnerable Versions: 14 - 18. CVSS v3.1 基础评分:4.3 | 受支持且受影响的版本:14 - 18。 Externally-controlled format string in PostgreSQL timeofday() function allows an attacker to retrieve portions of server memory, via crafted timezone zones. Versions before PostgreSQL 18.4, 17.10, 16.14, 15.18, and 14.23 are affected. The PostgreSQL project thanks Xint Code for reporting this problem. PostgreSQL timeofday() 函数中受外部控制的格式字符串允许攻击者通过精心构造的时区来获取部分服务器内存。PostgreSQL 18.4、17.10、16.14、15.18 和 14.23 之前的版本均受影响。PostgreSQL 项目感谢 Xint Code 报告此问题。

CVE-2026-6475: PostgreSQL pg_basebackup and pg_rewind can overwrite unrelated files of origin superuser choice CVE-2026-6475:PostgreSQL pg_basebackup 和 pg_rewind 可能覆盖源超级用户选择的无关文件 CVSS v3.1 Base Score: 8.8 | Supported, Vulnerable Versions: 14 - 18. CVSS v3.1 基础评分:8.8 | 受支持且受影响的版本:14 - 18。 Symlink following in PostgreSQL pg_basebackup plain format and in pg_rewind allows an origin superuser to overwrite local files, e.g. /var/lib/postgres/.bashrc, that hijack the operating system account. It will remain the case that starting the server after these commands implicitly trusts the origin superuser, due to features like shared_preload_libraries. Hence, the attack has practical implications only if one takes relevant action between these commands and server start, like moving the files to a different VM or snapshotting the VM. Versions before PostgreSQL 18.4, 17.10, 16.14, 15.18, and 14.23 are affected. The PostgreSQL project thanks Valery Gubanov, XlabAI Team of Tencent Xuanwu Lab, Atuin Automated Vulnerability Discovery Engine, Zhanpeng Liu, Guannan Wang, and Guancheng Li for reporting this problem. PostgreSQL pg_basebackup(纯格式)和 pg_rewind 中的符号链接跟随功能允许源超级用户覆盖本地文件(例如 /var/lib/postgres/.bashrc),从而劫持操作系统账户。由于 shared_preload_libraries 等功能的存在,在这些命令之后启动服务器时,系统仍会隐式信任源超级用户。因此,该攻击仅在用户在执行这些命令与启动服务器之间采取相关操作(如将文件移动到不同的虚拟机或对虚拟机进行快照)时才具有实际意义。PostgreSQL 18.4、17.10、16.14、15.18 和 14.23 之前的版本均受影响。PostgreSQL 项目感谢 Valery Gubanov、腾讯玄武实验室 XlabAI 团队、Atuin 自动化漏洞发现引擎、Zhanpeng Liu、Guannan Wang 和 Guancheng Li 报告此问题。

CVE-2026-6476: PostgreSQL pg_createsubscriber allows SQL injection via subscription name CVE-2026-6476:PostgreSQL pg_createsubscriber 允许通过订阅名称进行 SQL 注入 CVSS v3.1 Base Score: 7.2 | Supported, Vulnerable Versions: 17 - 18. CVSS v3.1 基础评分:7.2 | 受支持且受影响的版本:17 - 18。 SQL injection in PostgreSQL pg_createsubscriber allows an attacker with pg_create_subscription rights to execute arbitrary SQL as a superuser. The attack takes effect when pg_createsubscriber next runs. Within major versions 17 and 18, minor versions before PostgreSQL 18.4 and 17.10 are affected. Versions before PostgreSQL 17 are unaffected. The PostgreSQL project thanks Yu Kunpeng for reporting this problem. PostgreSQL pg_createsubscriber 中的 SQL 注入允许拥有 pg_create_subscription 权限的攻击者以超级用户身份执行任意 SQL。该攻击在下次运行 pg_createsubscriber 时生效。在 17 和 18 主版本中,PostgreSQL 18.4 和 17.10 之前的次要版本受影响。PostgreSQL 17 之前的版本不受影响。PostgreSQL 项目感谢 Yu Kunpeng 报告此问题。

CVE-2026-6477: PostgreSQL libpq lo_ functions let server superuser overwrite client stack memory* CVE-2026-6477:PostgreSQL libpq lo_ 函数允许服务器超级用户覆盖客户端栈内存* CVSS v3.1 Base Score: 8.8 | Supported, Vulnerable Versions: 14 - 18. CVSS v3.1 基础评分:8.8 | 受支持且受影响的版本:14 - 18。 Use of inherently dangerous function PQfn(…, result_is_int=0, …) in PostgreSQL libpq lo_export(), lo_read(), lo_lseek64(), and lo_tell64() functions allows the server superuser to overwrite a client stack buffer with an arbitrarily-large response. Like gets(), PQfn(…, result_is_int=0, …) stores arbitrary-length, server-determined data into a buffer of unspecified size. Because both the \lo_export command in psql and pg_dump call lo_read(), the server superuser can overwrite pg_dump or psql stack memory. Versions before PostgreSQL 18.4, 17.10, 16.14, 15.18, and 14.23 are affected. The PostgreSQL project thanks Yu Kunpeng and Martin Heistermann for reporting this problem. 在 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 之前的版本均受影响。PostgreSQL 项目感谢 Yu Kunpeng 和 Martin Heistermann 报告此问题。

CVE-2026-6478: PostgreSQL discloses MD5-hashed passwords via covert timing channel CVE-2026-6478:PostgreSQL 通过隐蔽计时通道泄露 MD5 哈希密码 CVSS v3.1 Base Score: 6.5 | Supported, Vulnerable Versions: 14 - 18. CVSS v3.1 基础评分:6.5 | 受支持且受影响的版本:14 - 18。 Covert timing channel in comparison of MD5-hashed password in PostgreSQL authentication allows an attacker to recover user credentials sufficient to authenticate. This does not affect scram-sha-256 passwords, the default in all supported releases. However, current databases may have MD5-hashed passwords originating in upgrades from PostgreSQL 13 or earlier. Versions before PostgreSQL 18.4, 17.10, 16.14, 15.18, and 14.23 are affected. The PostgreSQL project thanks Joe Conway for reporting this problem. 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 init causes denial of service, via uncontrolled recursion CVE-2026-6479:PostgreSQL SSL/GSS 初始化因不受控递归导致拒绝服务 (Content truncated in original text) (原文内容在此处截断)