PostgreSQL 16
支持中 · 记录构建 16.15 · 2026-08-13
- 首次正式发布
- 2023-09-14
- 支持结束
- 2028-11-09
- 已收录发布版本
- 16
- 原始发布说明条目
- 930
手册与来源
PostgreSQL 16 本站手册 · 已加载 1172 页。
手册加载时间:2026-09-27T00:10:45.258078。
发布说明快照:2026-09-26。安全证据快照:2026-09-26。PDF 链接按本地文件是否存在提供,历史版本的语言与 HTML 手册可能不同。生命周期参见官方版本政策。
升级注意事项
跨大版本升级需要导出/恢复或 pg_upgrade 等迁移方式,应阅读沿途大版本的发布说明与目标版本手册。小版本更新也可能要求额外操作,请核对对应发布的迁移说明。官方升级政策。
16.0 的原始迁移说明
对于希望从任何以前的版本迁移数据的人来说,需要使用pg_dumpall进行转储/恢复,或者使用pg_upgrade或逻辑复制。有关迁移到新主要版本的通用信息,请参阅第 19.6 节。
版本 16 包含一些可能影响与以前版本兼容性的变更。请注意以下不兼容性:
发布历史
每次发布的原始变更均独立保留。CVE 数量表示发布说明中的提及,可能包含后续纠正,不等于本次新修复漏洞数。
| 版本 | 日期/快照截止时间 | 全部变化 | BUG 修复 | 迁移条目 | 提及 CVE |
|---|---|---|---|---|---|
| 16.15 | 2026-08-13 | 98 | 42 | 0 | 31 |
| 16.14 | 2026-05-14 | 50 | 20 | 0 | 9 |
| 16.13 | 2026-02-26 | 6 | 5 | 0 | 1 |
| 16.12 | 2026-02-12 | 45 | 18 | 0 | 4 |
| 16.11 | 2025-11-13 | 59 | 32 | 0 | 2 |
| 16.10 | 2025-08-14 | 59 | 19 | 0 | 5 |
| 16.9 | 2025-05-08 | 48 | 19 | 0 | 1 |
| 16.8 | 2025-02-20 | 2 | 1 | 0 | 1 |
| 16.7 | 2025-02-13 | 55 | 31 | 0 | 1 |
| 16.6 | 2024-11-21 | 8 | 4 | 0 | 1 |
| 16.5 | 2024-11-14 | 54 | 25 | 0 | 4 |
| 16.4 | 2024-08-08 | 54 | 27 | 0 | 2 |
| 16.3 | 2024-05-09 | 57 | 27 | 0 | 1 |
| 16.2 | 2024-02-08 | 70 | 30 | 0 | 1 |
| 16.1 | 2023-11-09 | 59 | 28 | 0 | 3 |
| 16.0 | 2023-09-14 | 206 | 3 | 13 | 0 |
首次发布变化
16.0 的原始条目,包含功能和兼容性变化。类别用于浏览,不是上游原始分类。
匹配 206 / 206 条原始变更。
禁止主键使用 NULLS NOT DISTINCT 索引 · 兼容性变化 · 迁移说明
禁止主键使用
NULLS NOT DISTINCT索引(Daniel Gustafsson)§原始发布条目 ·
16.0/migration/002更改 REINDEX DATABASE 和reindexdb不再处理系统目录上的索引 · 兼容性变化 · 迁移说明
更改
REINDEX DATABASE和reindexdb不再处理系统目录上的索引(Simon Riggs)§ §仍可通过
REINDEX SYSTEM和reindexdb --system处理此类索引。原始发布条目 ·
16.0/migration/003移除pg_walinspect的函数 pg_get_wal_records_info_till_end_of_wal() 和 pg_get_wal_stats_till_end_of_wal() · 兼容性变化 · 迁移说明
移除pg_walinspect的函数
pg_get_wal_records_info_till_end_of_wal()和pg_get_wal_stats_till_end_of_wal()(Bharath Rupireddy)§原始发布条目 ·
16.0/migration/005将服务器变量 force_parallel_mode 重命名为 debug_parallel_query · 兼容性变化 · 迁移说明
将服务器变量
force_parallel_mode重命名为debug_parallel_query(David Rowley)§ §原始发布条目 ·
16.0/migration/006移除服务器变量 vacuum_defer_cleanup_age · 兼容性变化 · 迁移说明
移除服务器变量
vacuum_defer_cleanup_age(Andres Freund)§自从引入
hot_standby_feedback和复制槽后,它就已不再需要。原始发布条目 ·
16.0/migration/008移除服务器变量 promote_trigger_file · 兼容性变化 · 迁移说明
移除服务器变量
promote_trigger_file(Simon Riggs)§这用于将备库提升为主库,但现在使用
pg_ctl promote或pg_promote()更容易实现。原始发布条目 ·
16.0/migration/009限制 CREATEROLE 的权限及其修改其他角色的能力 · 兼容性变化 · 迁移说明
限制
CREATEROLE的权限及其修改其他角色的能力(Robert Haas)§ §之前,具有
CREATEROLE权限的角色可以更改任何非超级用户角色的许多方面。此类更改(包括添加成员)现在要求请求更改的角色具有ADMIN OPTION权限。例如,它们现在只有在也具有这些权限时才能更改CREATEDB、REPLICATION和BYPASSRLS属性。原始发布条目 ·
16.0/migration/012增加聚合函数使用带有 ORDER BY 或 DISTINCT 的预排序数据的能力 · 新功能
增加聚合函数使用带有
ORDER BY或DISTINCT的预排序数据的能力(David Rowley)§ § §新的服务器变量
enable_presorted_aggregate可用于禁用此功能。原始发布条目 ·
16.0/changes/002允许聚合函数 string_agg() 和 array_agg() 被并行化 · 性能改进
允许聚合函数
string_agg()和array_agg()被并行化(David Rowley)§原始发布条目 ·
16.0/changes/011在 Windows 上支持 wal_sync_method=fdatasync · 性能改进
在 Windows 上支持
wal_sync_method=fdatasync(Thomas Munro)§原始发布条目 ·
16.0/changes/014记录表上最后一次顺序扫描和索引扫描的统计信息 · 新功能
记录表上最后一次顺序扫描和索引扫描的统计信息(Dave Page)§
此信息显示在
pg_stat_*_tables和pg_stat_*_indexes中。原始发布条目 ·
16.0/changes/020记录已更新行移动到新页面的统计信息 · 新功能
记录已更新行移动到新页面的统计信息(Corey Huinker)§
pg_stat_*_tables列为n_tup_newpage_upd。原始发布条目 ·
16.0/changes/021向 pg_prepared_statements 视图添加预备语句结果类型的显示 · 新功能
向
pg_prepared_statements视图添加预备语句结果类型的显示(Dagfinn Ilmari Mannsåker)§ §原始发布条目 ·
16.0/changes/023在订阅创建时创建订阅统计条目,使 stats_reset 准确 · 新功能
在订阅创建时创建订阅统计条目,使
stats_reset准确(Andres Freund)§之前条目仅在首次报告统计信息时创建。
原始发布条目 ·
16.0/changes/024修正 pg_stat_database 中显示的临时关系写入的 I/O 统计 · BUG 修复
修正
pg_stat_database中显示的临时关系写入的 I/O 统计(Melanie Plageman)§原始发布条目 ·
16.0/changes/025增加函数 pg_stat_get_backend_subxact() 以报告会话的子事务缓存 · 新功能
增加函数
pg_stat_get_backend_subxact()以报告会话的子事务缓存(Dilip Kumar)§原始发布条目 ·
16.0/changes/026使 pg_stat_get_backend_idset()、pg_stat_get_backend_activity() 和相关函数使用不变的后端 id · 新功能
使
pg_stat_get_backend_idset()、pg_stat_get_backend_activity()和相关函数使用不变的后端 id(Nathan Bossart)§之前索引值在会话生命周期内可能会更改。
原始发布条目 ·
16.0/changes/027创建新的等待事件 DSMAllocate 以指示等待动态共享内存分配 · 新功能
创建新的等待事件
DSMAllocate以指示等待动态共享内存分配(Thomas Munro)§之前此类等待被报告为
DSMFillZeroWrite,该名称也被mmap()分配使用。原始发布条目 ·
16.0/changes/030向 log_checkpoints 消息添加检查点和 REDO LSN 信息 · 新功能
向
log_checkpoints消息添加检查点和REDO LSN信息(Bharath Rupireddy,Kyotaro Horiguchi)§原始发布条目 ·
16.0/changes/032增加具有创建订阅权限的预定义角色 pg_create_subscription · 新功能
增加具有创建订阅权限的预定义角色
pg_create_subscription(Robert Haas)§原始发布条目 ·
16.0/changes/034简化 LOCK TABLE 的权限 · 新功能
简化
LOCK TABLE的权限(Jeff Davis)§之前用户执行各种锁级别的
LOCK TABLE的能力被限制为他们有权在表上执行的命令所需的锁级别。例如,具有UPDATE权限的用户可以执行除ACCESS SHARE之外的所有锁级别,即使它是较低的锁级别。现在,如果用户已有更高锁级别的权限,则可以发出较低的锁级别。原始发布条目 ·
16.0/changes/036允许使用 ADMIN OPTION 执行 ALTER GROUP group_name ADD USER user_name · 新功能
允许使用
ADMIN OPTION执行ALTER GROUP group_name ADD USER user_name(Robert Haas)§之前需要
CREATEROLE权限。原始发布条目 ·
16.0/changes/037允许创建其他角色的角色自动继承新角色的权限或 SET ROLE 到新角色的能力 · 新功能
允许创建其他角色的角色自动继承新角色的权限或
SET ROLE到新角色的能力(Robert Haas,Shi Yu)§ §这由服务器变量
createrole_self_grant控制。原始发布条目 ·
16.0/changes/039为 GRANT 记录添加授予者的依赖跟踪 · 新功能
为
GRANT记录添加授予者的依赖跟踪(Robert Haas)§这保证
pg_auth_members.grantor值始终有效。原始发布条目 ·
16.0/changes/045允许 makeaclitem() 接受多个权限名称 · 新功能
允许
makeaclitem()接受多个权限名称(Robins Tharakan)§之前只接受单个权限名称,如
SELECT。原始发布条目 ·
16.0/changes/048增加对 Kerberos 凭证委托的支持 · 新功能
增加对 Kerberos 凭证委托的支持(Stephen Frost)§ § § §
这通过服务器变量
gss_accept_delegation和 libpq 连接参数gssdelegation启用。原始发布条目 ·
16.0/changes/049允许通过服务器变量 scram_iterations 设置 SCRAM 迭代次数 · 新功能
允许通过服务器变量
scram_iterations设置 SCRAM 迭代次数(Daniel Gustafsson)§原始发布条目 ·
16.0/changes/050收紧对哪些服务器变量可以重置的限制 · 新功能
收紧对哪些服务器变量可以重置的限制(Masahiko Sawada)§
之前,虽然某些变量(如
transaction_isolation)不受RESET ALL影响,但它们可以在不适当的情况下被单独重置。原始发布条目 ·
16.0/changes/052将各种 postgresql.conf 项目移入新类别 · 新功能
将各种
postgresql.conf项目移入新类别(Shinya Kato)§这也影响
pg_settings视图中显示的类别。原始发布条目 ·
16.0/changes/053移除归档文件必须持久重命名的限制 · 新功能
移除归档文件必须持久重命名的限制(Nathan Bossart)§ §
archive_command命令现在更可能在崩溃后使用已归档的文件被调用。原始发布条目 ·
16.0/changes/056防止同时设置 archive_library 和 archive_command · 新功能
防止同时设置
archive_library和archive_command(Nathan Bossart)§之前
archive_library会覆盖archive_command。原始发布条目 ·
16.0/changes/057允许 postmaster 使用中止信号终止子进程 · 新功能
允许 postmaster 使用中止信号终止子进程(Tom Lane)§
这允许收集卡住的子进程的核心转储。这由
send_abort_for_crash和send_abort_for_kill控制。postmaster 的-T开关现在与设置send_abort_for_crash相同。原始发布条目 ·
16.0/changes/058允许服务器为具有 pg_use_reserved_connections 成员资格的角色预留后端槽位 · 新功能
允许服务器为具有
pg_use_reserved_connections成员资格的角色预留后端槽位(Nathan Bossart)§预留槽位的数量由服务器变量
reserved_connections设置。原始发布条目 ·
16.0/changes/060增加供开发者使用的 debug_io_direct 设置 · 新功能
增加供开发者使用的
debug_io_direct设置(Thomas Munro,Andres Freund,Bharath Rupireddy)§ §虽然主要面向开发者,
wal_sync_method=open_sync/open_datasync已被修改为在wal_level=minimal时不使用直接 I/O;现在通过debug_io_direct=wal启用。原始发布条目 ·
16.0/changes/062增加函数 pg_split_walfile_name() 以报告 WAL 文件名的段和时间线值 · 新功能
增加函数
pg_split_walfile_name()以报告 WAL 文件名的段和时间线值(Bharath Rupireddy)§ §原始发布条目 ·
16.0/changes/063改进 pg_ident.conf 的用户列处理以匹配 pg_hba.conf · 新功能
改进
pg_ident.conf的用户列处理以匹配pg_hba.conf(Jelte Fennema)§具体来说,增加对
all、使用+的角色成员资格以及使用前导斜杠的正则表达式的支持。与这些模式匹配的任何用户名必须用双引号括起来。原始发布条目 ·
16.0/changes/065允许在 pg_hba.conf 和 pg_ident.conf 中包含文件 · 新功能
允许在
pg_hba.conf和pg_ident.conf中包含文件(Julien Rouhaud)§这由
include、include_if_exists和include_dir控制。系统视图pg_hba_file_rules和pg_ident_file_mappings现在显示文件名。原始发布条目 ·
16.0/changes/066向系统视图 pg_hba_file_rules 添加规则和映射编号 · 新功能
向系统视图
pg_hba_file_rules添加规则和映射编号(Julien Rouhaud)§原始发布条目 ·
16.0/changes/068使 CREATE DATABASE 和 CREATE COLLATION 的 LOCALE 选项以及initdb和createdb的 --locale 选项控制非 libc 排序规则提供程序 · 新功能
使
CREATE DATABASE和CREATE COLLATION的LOCALE选项以及initdb和createdb的--locale选项控制非 libc 排序规则提供程序(Jeff Davis)之前它们仅控制 libc 提供程序。
原始发布条目 ·
16.0/changes/070允许创建自定义 ICU 排序规则 · 新功能
允许创建自定义 ICU 排序规则(Peter Eisentraut)§
这通过
CREATE COLLATION的新RULES子句以及CREATE DATABASE、createdb和initdb的新选项来实现。原始发布条目 ·
16.0/changes/072允许并行应用逻辑复制 · 新功能
允许并行应用逻辑复制(Hou Zhijie,Wang Wei,Amit Kapila)§ § §
CREATE SUBSCRIPTION的STREAMING选项现在支持parallel,以便使用并行工作进程应用大事务。并行工作进程的数量由新的服务器变量max_parallel_apply_workers_per_subscription控制。还新增了等待事件LogicalParallelApplyMain、LogicalParallelApplyStateChange和LogicalApplySendData。系统视图pg_stat_subscription也新增了列leader_pid以跟踪并行活动。原始发布条目 ·
16.0/changes/077使 wal_retrieve_retry_interval 按订阅操作 · 新功能
使
wal_retrieve_retry_interval按订阅操作(Nathan Bossart)§之前重试时间是全局应用的。这还添加了等待事件
LogicalRepLauncherDSA和LogicalRepLauncherHash。原始发布条目 ·
16.0/changes/081允许 COPY 以批量方式向外部表添加行 · 新功能
允许
COPY以批量方式向外部表添加行(Andrey Lepikhov,Etsuro Fujita)§这由postgres_fdw选项
batch_size控制。原始发布条目 ·
16.0/changes/084允许 CREATE TABLE 指定 STORAGE 类型 · 新功能
允许
CREATE TABLE指定STORAGE类型(Teodor Sigaev,Aleksander Alekseev)§ §之前只有
ALTER TABLE可以控制这一点。原始发布条目 ·
16.0/changes/085更改 REINDEX DATABASE 和 REINDEX SYSTEM 不再要求参数 · 新功能
更改
REINDEX DATABASE和REINDEX SYSTEM不再要求参数(Simon Riggs)§ §之前必须指定数据库名称。
原始发布条目 ·
16.0/changes/089允许 CREATE STATISTICS 在未指定名称时自动生成统计名称 · 新功能
允许
CREATE STATISTICS在未指定名称时自动生成统计名称(Simon Riggs)§原始发布条目 ·
16.0/changes/090增加函数 pg_input_is_valid() 和 pg_input_error_info() 以检查类型转换错误 · 新功能
增加函数
pg_input_is_valid()和pg_input_error_info()以检查类型转换错误(Tom Lane)§ §原始发布条目 ·
16.0/changes/097增加 SQL/JSON 构造函数 · 新功能
增加 SQL/JSON 构造函数(Nikita Glukhov,Teodor Sigaev,Oleg Bartunov,Alexander Korotkov,Amit Langote)§
新函数
JSON_ARRAY()、JSON_ARRAYAGG()、JSON_OBJECT()和JSON_OBJECTAGG()是 SQL 标准的一部分。原始发布条目 ·
16.0/changes/100改进全文高亮函数 ts_headline() 对 OR 和 NOT 表达式的处理 · 新功能
改进全文高亮函数
ts_headline()对OR和NOT表达式的处理(Tom Lane)§原始发布条目 ·
16.0/changes/103增加在指定时区中添加、减去和生成 timestamptz 值的函数 · 新功能
增加在指定时区中添加、减去和生成
timestamptz值的函数(Przemyslaw Sztoch,Gurjeet Singh)§函数为
date_add()、date_subtract()和generate_series()。原始发布条目 ·
16.0/changes/104将 date_trunc(unit, timestamptz, time_zone) 更改为不可变函数 · 新功能
将
date_trunc(unit, timestamptz, time_zone)更改为不可变函数(Przemyslaw Sztoch)§这允许使用此函数创建表达式索引。
原始发布条目 ·
16.0/changes/105增加服务器变量 SYSTEM_USER · 新功能
增加服务器变量
SYSTEM_USER(Bertrand Drouvot)§这报告认证方法及其认证的用户。
原始发布条目 ·
16.0/changes/106增加函数 array_sample() 和 array_shuffle() · 新功能
增加函数
array_sample()和array_shuffle()(Martin Kalcher)§原始发布条目 ·
16.0/changes/107增加聚合函数 ANY_VALUE(),返回集合中的任意值 · 新功能
增加聚合函数
ANY_VALUE(),返回集合中的任意值(Vik Fearing)§原始发布条目 ·
16.0/changes/108增加函数 random_normal() 以提供正态分布的随机数 · 新功能
增加函数
random_normal()以提供正态分布的随机数(Paul Ramsey)§原始发布条目 ·
16.0/changes/109增加 XMLSERIALIZE() 选项 INDENT 以美化输出 · 新功能
增加
XMLSERIALIZE()选项INDENT以美化输出(Jim Jones)§原始发布条目 ·
16.0/changes/112更改 pg_collation_actual_version() 以为默认排序规则返回合理的值 · 新功能
更改
pg_collation_actual_version()以为默认排序规则返回合理的值(Jeff Davis)§之前它返回
NULL。原始发布条目 ·
16.0/changes/113允许 pg_read_file() 和 pg_read_binary_file() 忽略缺失的文件 · 新功能
允许
pg_read_file()和pg_read_binary_file()忽略缺失的文件(Kyotaro Horiguchi)§原始发布条目 ·
16.0/changes/114向 pg_size_bytes() 添加字节规格(B) · 新功能
向
pg_size_bytes()添加字节规格(B)(Peter Eisentraut)§原始发布条目 ·
16.0/changes/115增加 libpq 连接选项 require_auth 以指定可接受的认证方法列表 · 新功能
增加 libpq 连接选项
require_auth以指定可接受的认证方法列表(Jacob Champion)§这也可用于禁止某些认证方法。
原始发布条目 ·
16.0/changes/118允许多个 libpq 指定的主机被随机选择 · 新功能
允许多个 libpq 指定的主机被随机选择(Jelte Fennema)§ §
这通过
load_balance_hosts=random启用,可用于负载均衡。原始发布条目 ·
16.0/changes/119增加 libpq 选项 sslcertmode 以控制客户端证书的传输 · 新功能
增加 libpq 选项
sslcertmode以控制客户端证书的传输(Jacob Champion)§选项值为
disable、allow和require。原始发布条目 ·
16.0/changes/120允许 libpq 使用系统证书池进行证书验证 · 新功能
允许 libpq 使用系统证书池进行证书验证(Jacob Champion,Thomas Habets)§
这通过
sslrootcert=system启用,同时也会启用sslmode=verify-full。原始发布条目 ·
16.0/changes/121允许 psql 控制扩展格式中标题行的最大宽度 · 新功能
允许 psql 控制扩展格式中标题行的最大宽度(Platon Pronko)§
这由
xheader_width控制。原始发布条目 ·
16.0/changes/123允许 psql 脚本获取 shell 命令和查询的退出状态 · 新功能
允许 psql 脚本获取 shell 命令和查询的退出状态(Corey Huinker,Tom Lane)§ §
新的 psql 控制变量为
SHELL_ERROR和SHELL_EXIT_CODE。原始发布条目 ·
16.0/changes/131向 pg_dump 添加 LZ4 和 Zstandard 压缩 · 新功能
向 pg_dump 添加 LZ4 和 Zstandard 压缩(Georgios Kokolatos,Justin Pryzby)
原始发布条目 ·
16.0/changes/134向createuser添加选项以控制更多用户选项 · 新功能
向createuser添加选项以控制更多用户选项(Shinya Kato)§ §
具体来说,新选项控制有效期截止日期、绕过行级安全以及角色成员资格。
原始发布条目 ·
16.0/changes/138弃用createuser选项 --role · 新功能
弃用createuser选项
--role(Nathan Bossart)§ §此选项容易与新的 createuser 角色成员资格选项混淆,因此添加了具有相同功能的选项
--member-of。--role选项仍可使用。原始发布条目 ·
16.0/changes/139使pg_upgrade设置新集簇的区域设置和编码 · 新功能
使pg_upgrade设置新集簇的区域设置和编码(Jeff Davis)§
这消除了新集簇必须使用相同的区域设置和编码设置创建的要求。
原始发布条目 ·
16.0/changes/142增加pg_upgrade选项以指定默认传输模式 · 新功能
增加pg_upgrade选项以指定默认传输模式(Peter Eisentraut)§
选项为
--copy。原始发布条目 ·
16.0/changes/143改进pg_basebackup以接受数字压缩选项 · 新功能
改进pg_basebackup以接受数字压缩选项(Georgios Kokolatos,Michael Paquier)§
现在支持类似
--compress=server-5的选项。原始发布条目 ·
16.0/changes/144修复pg_basebackup以处理存储在 PGDATA 目录中的表空间 · BUG 修复
修复pg_basebackup以处理存储在
PGDATA目录中的表空间(Robert Haas)§原始发布条目 ·
16.0/changes/145增加pg_waldump选项 --save-fullpage 以导出整页镜像 · 新功能
增加pg_waldump选项
--save-fullpage以导出整页镜像(David Christensen)§原始发布条目 ·
16.0/changes/146允许pg_waldump选项 -t/--timeline 接受十六进制值 · 新功能
允许pg_waldump选项
-t/--timeline接受十六进制值(Peter Eisentraut)§原始发布条目 ·
16.0/changes/147使pg_receivewal和pg_recvlogical在 SIGTERM 时干净退出 · 新功能
使pg_receivewal和pg_recvlogical在
SIGTERM时干净退出(Christoph Berg)§此信号通常由 systemd 使用。
原始发布条目 ·
16.0/changes/150增加构建选项以允许测试小表段大小 · 新功能
增加构建选项以允许测试小表段大小(Andres Freund)§
构建选项为
--with-segsize-blocks和-Dsegsize_blocks。原始发布条目 ·
16.0/changes/168向fuzzystrmatch添加 Daitch-Mokotoff Soundex 支持 · 新功能
向fuzzystrmatch添加 Daitch-Mokotoff Soundex 支持(Dag Lem)§
原始发布条目 ·
16.0/changes/174允许auto_explain记录传递给参数化语句的值 · 新功能
允许auto_explain记录传递给参数化语句的值(Dagfinn Ilmari Mannsåker)§
这影响使用服务器端
PREPARE/EXECUTE的查询,以及客户端通过 Parse/Bind 协议消息发出的查询。日志记录由auto_explain.log_parameter_max_length控制;默认情况下,查询参数记录时不受长度限制。原始发布条目 ·
16.0/changes/175使auto_explain的 log_verbose 模式遵守 compute_query_id 的值 · 新功能
使auto_explain的
log_verbose模式遵守compute_query_id的值(Atsushi Torikoshi)§之前即使启用了
compute_query_id,log_verbose也不显示查询标识符。原始发布条目 ·
16.0/changes/176使 pg_stat_statements 规范化工具命令中使用的常量 · 新功能
使
pg_stat_statements规范化工具命令中使用的常量(Michael Paquier)§之前显示的是常量而非占位符,如
$1。原始发布条目 ·
16.0/changes/178增加pg_walinspect函数 pg_get_wal_block_info() 以报告 WAL 块信息 · 新功能
增加pg_walinspect函数
pg_get_wal_block_info()以报告 WAL 块信息(Michael Paquier,Melanie Plageman,Bharath Rupireddy)§ § § §原始发布条目 ·
16.0/changes/179更改pg_walinspect函数 pg_get_wal_records_info() 和 pg_get_wal_stats() 解释结束 LSN 的方式 · 新功能
更改pg_walinspect函数
pg_get_wal_records_info()和pg_get_wal_stats()解释结束 LSN 的方式(Bharath Rupireddy)§之前表示不存在的 WAL 位置的结束 LSN 会产生错误,而现在将被解释为 WAL 的末尾。
原始发布条目 ·
16.0/changes/180在pg_walinspect和pg_waldump中添加 WAL 记录的详细描述 · 新功能
在pg_walinspect和pg_waldump中添加 WAL 记录的详细描述(Melanie Plageman,Peter Geoghegan)§ § § §
原始发布条目 ·
16.0/changes/181增加pageinspect函数 bt_multi_page_stats() 以报告多页统计信息 · 新功能
增加pageinspect函数
bt_multi_page_stats()以报告多页统计信息(Hamid Akhtar)§这与
bt_page_stats()类似,但可以报告一个范围的页面。原始发布条目 ·
16.0/changes/182向pageinspect函数 brin_page_items() 添加空范围输出列 · 新功能
向pageinspect函数
brin_page_items()添加空范围输出列(Tomas Vondra)§原始发布条目 ·
16.0/changes/183修正pg_stat_statements扩展查询协议语句的不准确行跟踪 · BUG 修复
修正pg_stat_statements扩展查询协议语句的不准确行跟踪(Sami Imseih)§
原始发布条目 ·
16.0/changes/185增加pg_buffercache函数 pg_buffercache_usage_counts() 以报告使用总计 · 新功能
增加pg_buffercache函数
pg_buffercache_usage_counts()以报告使用总计(Nathan Bossart)§原始发布条目 ·
16.0/changes/186增加pg_buffercache函数 pg_buffercache_summary() 以报告汇总的缓冲区统计 · 新功能
增加pg_buffercache函数
pg_buffercache_summary()以报告汇总的缓冲区统计(Melih Mutlu)§原始发布条目 ·
16.0/changes/187允许使用 no_relocate 将必需扩展标记为不可重定位 · 新功能
允许使用
no_relocate将必需扩展标记为不可重定位(Regina Obe)§这允许
@extschema:referenced_extension_name@在扩展的生命周期内被视为常量。原始发布条目 ·
16.0/changes/189允许 postgres_fdw 并行执行中止操作 · 新功能
允许 postgres_fdw 并行执行中止操作(Etsuro Fujita)§
这通过 postgres_fdw 选项
parallel_abort启用。原始发布条目 ·
16.0/changes/190使对外部 postgres_fdw 表的 ANALYZE 更高效 · 新功能
使对外部 postgres_fdw 表的
ANALYZE更高效(Tomas Vondra)§postgres_fdw 选项
analyze_sampling控制采样方法。原始发布条目 ·
16.0/changes/191
安全证据
共 60 条记录,来自官方安全矩阵及发布说明的提及。只有安全快照明确列出此分支时才显示修复版本;仅有提及不能确定漏洞适用性或新修复。
CVE-2026-6638 · PostgreSQL REFRESH PUBLICATION allows SQL injection via table name · CVSS 3.7
SQL injection in PostgreSQL logical replication ALTER SUBSCRIPTION ... REFRESH PUBLICATION allows a subscriber table creator to execute arbitrary SQL with the subscription's publication-side credentials. The attack takes effect at the next REFRESH PUBLICATION. Within major versions 16, 17, and 18, minor versions before PostgreSQL 18.4, 17.10, and 16.14 are affected. Versions before PostgreSQL 16 are unaffected.
以上保留官方英文漏洞说明。
本分支修复于:16.14。组件:core server。
官方受影响分支记录:16。
AV:N/AC:H/PR:L/UI:R/S:U/C:L/I:L/A:N
发布说明中的提及:
CVE-2026-6637 · PostgreSQL refint allows stack buffer overflow and SQL injection · CVSS 8.8
Stack buffer overflow in PostgreSQL module "refint" allows an unprivileged database user to execute arbitrary code as the operating system user running the database. A distinct attack is possible if the application declares a user-controlled column as a "refint" cascade primary key and facilitates user-controlled updates to that column. In that case, a SQL injection allows a primary key update value provider to execute arbitrary SQL as the database user performing the primary key update. Versions before PostgreSQL 18.4, 17.10, 16.14, 15.18, and 14.23 are affected.
以上保留官方英文漏洞说明。
本分支修复于:16.14。组件:contrib module。
官方受影响分支记录:16。
AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
发布说明中的提及:
CVE-2026-6479 · PostgreSQL SSL/GSS init causes denial of service, via uncontrolled recursion · CVSS 7.5
Uncontrolled recursion in PostgreSQL SSL and GSS negotiation allows an attacker able to connect to a PostgreSQL AF_UNIX socket to achieve sustained denial of service. If SSL and GSS are both disabled, an attacker can do the same via access to a PostgreSQL TCP socket. Versions before PostgreSQL 18.4, 17.10, 16.14, 15.18, and 14.23 are affected.
以上保留官方英文漏洞说明。
本分支修复于:16.14。组件:core server。
官方受影响分支记录:16。
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
发布说明中的提及:
CVE-2026-6478 · PostgreSQL discloses MD5-hashed passwords via covert timing channel · CVSS 6.5
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.
以上保留官方英文漏洞说明。
本分支修复于:16.14。组件:core server。
官方受影响分支记录:16。
AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N
发布说明中的提及:
CVE-2026-6477 · PostgreSQL libpq lo_* functions let server superuser overwrite client stack memory · CVSS 8.8
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.
以上保留官方英文漏洞说明。
本分支修复于:16.14。组件:client。
官方受影响分支记录:16。
AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
发布说明中的提及:
CVE-2026-6475 · PostgreSQL pg_basebackup and pg_rewind can overwrite unrelated files of origin superuser choice · CVSS 8.8
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.
以上保留官方英文漏洞说明。
本分支修复于:16.14。组件:client。
官方受影响分支记录:16。
AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
发布说明中的提及:
CVE-2026-6474 · PostgreSQL timeofday() can disclose portions of server memory · CVSS 4.3
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.
以上保留官方英文漏洞说明。
本分支修复于:16.14。组件:core server。
官方受影响分支记录:16。
AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N
发布说明中的提及:
CVE-2026-6473 · PostgreSQL server undersizes allocations, via integer wraparound · CVSS 8.8
Integer wraparound in multiple PostgreSQL server features allows an unprivileged database user to cause the server to undersize an allocation and write out-of-bounds. This may execute arbitrary code as the operating system user running the database. In applications that pass gigabyte-scale user inputs to the relevant database functions, the application input provider may achieve a segmentation fault. Versions before PostgreSQL 18.4, 17.10, 16.14, 15.18, and 14.23 are affected.
以上保留官方英文漏洞说明。
本分支修复于:16.14。组件:core server。
官方受影响分支记录:16。
AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
发布说明中的提及:
CVE-2026-6472 · PostgreSQL CREATE TYPE does not check multirange schema CREATE privilege · CVSS 5.4
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.
以上保留官方英文漏洞说明。
本分支修复于:16.14。组件:core server。
官方受影响分支记录:16。
AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:N
发布说明中的提及:
CVE-2026-6471 · PostgreSQL logical decoding can dlopen arbitrary file · CVSS 7.2
Missing authorization in PostgreSQL logical decoding allows a non-superuser holding REPLICATION privilege to dlopen any file visible to the operating system account running the server, via the choice of logical decoding plugin. This in turn runs arbitrary code as that account. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.
以上保留官方英文漏洞说明。
本分支修复于:16.15。组件:core server。
官方受影响分支记录:16。
AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H
发布说明中的提及:
CVE-2026-6470 · PostgreSQL fails to check type USAGE privilege · CVSS 4.3
Missing authorization in PostgreSQL DDL commands allows an object creator to achieve denial of service against ALTER and DROP of the type, via creating a dependency on the type. Many DDL operations did check the privilege, but assigning a range subtype and referencing the type from an SQL expression did not. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.
以上保留官方英文漏洞说明。
本分支修复于:16.15。组件:core server。
官方受影响分支记录:16。
AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:L
发布说明中的提及:
CVE-2026-6469 · PostgreSQL ALTER TABLE ALTER TYPE resets extended statistics ownership · CVSS 3.8
Incorrect ownership assignment in PostgreSQL ALTER TABLE ALTER TYPE command reassigns ownership of dependent statistics objects to the current user. This wrongly allows the table owner to run DROP STATISTICS and ALTER STATISTICS via this improper ownership. It wrongly denies those commands to the prior statistics object owner. DROP TABLE remains able to remove statistics objects, so this exploit achieves nothing in many ownership arrangements. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.
以上保留官方英文漏洞说明。
本分支修复于:16.15。组件:core server。
官方受影响分支记录:16。
AV:N/AC:L/PR:H/UI:N/S:U/C:N/I:L/A:L
发布说明中的提及:
CVE-2026-6464 · PostgreSQL psql COPY FROM STDIN early failure processes data lines as psql commands · CVSS 8.1
Untrusted data inclusion in PostgreSQL psql COPY may allow a server administrator to elicit execution of data lines as psql commands, via error injection. If the "COPY FROM STDIN" or "\copy FROM STDIN" command fails before the server indicates that it awaits input rows, psql processes the in-line data rows as psql commands. "COPY FROM" with a filename is unaffected. The server administrator has no inherent control over the data rows, so a complete attack requires the attacker to separately acquire control of both the server and the data rows. Alternatively, an attacker controlling data rows alone might complete an attack through a coincidental error that they don't control. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.
以上保留官方英文漏洞说明。
本分支修复于:16.15。组件:client。
官方受影响分支记录:16。
AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
发布说明中的提及:
CVE-2026-2006 · PostgreSQL missing validation of multibyte character length executes arbitrary code · CVSS 8.8
Missing validation of multibyte character length in PostgreSQL text manipulation allows a database user to issue crafted queries that achieve a buffer overrun. That suffices to execute arbitrary code as the operating system user running the database. Versions before PostgreSQL 18.2, 17.8, 16.12, 15.16, and 14.21 are affected.
以上保留官方英文漏洞说明。
本分支修复于:16.12。组件:core server。
官方受影响分支记录:16。
AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
发布说明中的提及:
CVE-2026-2005 · PostgreSQL pgcrypto heap buffer overflow executes arbitrary code · CVSS 8.8
Heap buffer overflow in PostgreSQL pgcrypto allows a ciphertext provider to execute arbitrary code as the operating system user running the database. Versions before PostgreSQL 18.2, 17.8, 16.12, 15.16, and 14.21 are affected.
以上保留官方英文漏洞说明。
本分支修复于:16.12。组件:contrib module。
官方受影响分支记录:16。
AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
发布说明中的提及:
CVE-2026-2004 · PostgreSQL intarray missing validation of type of input to selectivity estimator executes arbitrary code · CVSS 8.8
Missing validation of type of input in PostgreSQL intarray extension selectivity estimator function allows an object creator to execute arbitrary code as the operating system user running the database. Versions before PostgreSQL 18.2, 17.8, 16.12, 15.16, and 14.21 are affected.
以上保留官方英文漏洞说明。
本分支修复于:16.12。组件:contrib module。
官方受影响分支记录:16。
AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
发布说明中的提及:
CVE-2026-2003 · PostgreSQL oidvector discloses a few bytes of memory · CVSS 4.3
Improper validation of type "oidvector" in PostgreSQL allows a database user to disclose a few bytes of server memory. We have not ruled out viability of attacks that arrange for presence of confidential information in disclosed bytes, but they seem unlikely. Versions before PostgreSQL 18.2, 17.8, 16.12, 15.16, and 14.21 are affected.
以上保留官方英文漏洞说明。
本分支修复于:16.12。组件:core server。
官方受影响分支记录:16。
AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N
发布说明中的提及:
CVE-2026-19385 · PostgreSQL pg_dump heap buffer overflow executes arbitrary code · CVSS 8.8
Heap buffer overflow in PostgreSQL pg_dump of long function transform lists allows an object creator to execute arbitrary code as the operating system user running pg_dump, via a crafted transform list. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.
以上保留官方英文漏洞说明。
本分支修复于:16.15。组件:client。
官方受影响分支记录:16。
AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
发布说明中的提及:
CVE-2026-18408 · PostgreSQL psql \unrestrict lets superuser of pg_dump origin server execute arbitrary code in psql client · CVSS 8.8
Untrusted data inclusion in pg_dump in PostgreSQL allows a malicious superuser of the origin server to inject arbitrary code for restore-time execution as the client operating system account running psql to restore the dump, via psql \restrict meta-command input expansion. The fix for CVE-2025-8714 introduced \restrict and \unrestrict to block this attack, but \unrestrict itself was sufficient for an attack. pg_dumpall is also affected. pg_restore is affected when used to generate a plain-format dump. Non-core use of \restrict would be affected, but we've not identified non-core use. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.
以上保留官方英文漏洞说明。
本分支修复于:16.15。组件:client。
官方受影响分支记录:16。
AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
发布说明中的提及:
CVE-2026-18024 · PostgreSQL ascii() function reads past end of buffer · CVSS 4.3
Buffer over-read in PostgreSQL ascii() SQL function allows a user to disclose up to 3 bytes after the end of a specific allocation, via a crafted text value. This is the same class of defect that CVE-2026-2006 fixed, though this instance has less impact. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.
以上保留官方英文漏洞说明。
本分支修复于:16.15。组件:core server。
官方受影响分支记录:16。
AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N
发布说明中的提及:
CVE-2026-16241 · PostgreSQL ECPG integer underflow can crash the client · CVSS 3.8
Integer underflow in PostgreSQL ECPG allows a database server administrator to achieve temporary denial of service against the ECPG client via sending a bytea value lacking the mandatory prefix. The client overwrites a huge memory region with bytes outside attacker knowledge or control. This typically yields a simple SIGSEGV, but rare cases might achieve client-specific integrity impact via the write. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.
以上保留官方英文漏洞说明。
本分支修复于:16.15。组件:client。
官方受影响分支记录:16。
AV:N/AC:L/PR:H/UI:N/S:U/C:N/I:L/A:L
发布说明中的提及:
CVE-2026-16239 · PostgreSQL type confusion in cursor CLOSE + DECLARE executes arbitrary code · CVSS 8.8
Type confusion in PostgreSQL "portal"/cursor lifecycle allows a user to execute arbitrary code as the operating system user running the database, via re-creation of a cursor or other portal with different types. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.
以上保留官方英文漏洞说明。
本分支修复于:16.15。组件:core server。
官方受影响分支记录:16。
AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
发布说明中的提及:
CVE-2026-16238 · PostgreSQL type confusion in pg_restore_attribute_stats() executes arbitrary code · CVSS 8.8
Type confusion in PostgreSQL pg_restore_attribute_stats() allows an object creator to execute arbitrary code as the operating system user running the database, via conflation of range and multirange values. Within major version 18, minor versions before PostgreSQL 18.6 are affected. Versions before PostgreSQL 18 are unaffected.
以上保留官方英文漏洞说明。
尚未记录本分支的修复版本。组件:core server。
AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
发布说明中的提及:
CVE-2026-15742 · PostgreSQL fuzzystrmatch writes effectively-arbitrary addresses, via integer wraparound · CVSS 8.8
Integer wraparound in PostgreSQL fuzzystrmatch allows a user to direct writes to a huge range of addresses, executing arbitrary code as the operating system user running the database, via extreme inputs to SQL function levenshtein() or levenshtein_less_equal(). Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.
以上保留官方英文漏洞说明。
本分支修复于:16.15。组件:contrib module。
官方受影响分支记录:16。
AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
发布说明中的提及:
CVE-2026-15741 · PostgreSQL expression deparse allows SQL injection via EXTRACT argument · CVSS 8.8
SQL injection in PostgreSQL EXTRACT() deparse allows an object owner to execute arbitrary SQL as a superuser via a hostile object definition. Attacks affect expression deparse consumers broadly, including pg_dump, psql commands like \sf, and any similar usage in non-core tools. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.
以上保留官方英文漏洞说明。
本分支修复于:16.15。组件:core server。
官方受影响分支记录:16。
AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
发布说明中的提及:
CVE-2026-14681 · PostgreSQL improper enforcement of GSSAPI encryption when coupled with SSL · CVSS 4.2
Improper enforcement of message integrity in PostgreSQL GSSAPI support allows a user to negotiate GSSAPI contrary to pg_hba.conf rules, via initial direct TLS connection. Despite a pg_hba.conf that appears to require GSSAPI, the connection may exchange data over TLS encryption alone. If the TLS settings are more permissive than the GSS settings, the connection may continue with lesser protection. Within major versions 17-18, minor versions before PostgreSQL 18.6 and 17.11 are affected. Versions before PostgreSQL 17 are unaffected.
以上保留官方英文漏洞说明。
尚未记录本分支的修复版本。组件:core server。
AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:L/A:N
发布说明中的提及:
CVE-2026-14680 · PostgreSQL type confusion via "internal" arguments · CVSS 8.8
Type confusion with PostgreSQL "internal" data type arguments allows any user to execute arbitrary code as the operating system user running the database, via calls to functions with that argument type. Type "internal" represents a class of mutually-incompatible data structures not intended for access from SQL. The system intended to prevent such function calls, but this prevention had gaps. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.
以上保留官方英文漏洞说明。
本分支修复于:16.15。组件:core server。
官方受影响分支记录:16。
AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
发布说明中的提及:
CVE-2026-14679 · PostgreSQL stack buffer overflow in argument match writes 0x0 and 0x1 to server memory · CVSS 8.2
Stack buffer overflow in PostgreSQL argument name matching allows an object creator to achieve unknown impacts via OUT parameter count. The attack can write only 0x0 and 0x1 bytes. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.
以上保留官方英文漏洞说明。
本分支修复于:16.15。组件:core server。
官方受影响分支记录:16。
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:H
发布说明中的提及:
CVE-2026-14678 · PostgreSQL pg_trgm picksplit reads past end of buffer · CVSS 4.3
Buffer over-read in PostgreSQL pg_trgm index picksplit function reads past end of a heap buffer. This might allow a table maintainer to infer limited memory values, via the lossy signal of index split choices. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.
以上保留官方英文漏洞说明。
本分支修复于:16.15。组件:contrib module。
官方受影响分支记录:16。
AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N
发布说明中的提及:
CVE-2026-14677 · PostgreSQL 32-bit pltcl and plperl undersize allocations, via integer wraparound · CVSS 8.8
Integer wraparound in PostgreSQL 32-bit builds of pltcl and plperl allows an object creator to cause the server to undersize an allocation and write out-of-bounds via crafted function bodies. This may execute arbitrary code as the operating system user running the database. CVE-2026-6473 had fixed similar problems. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.
以上保留官方英文漏洞说明。
本分支修复于:16.15。组件:core server。
官方受影响分支记录:16。
AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
发布说明中的提及:
CVE-2026-14676 · PostgreSQL pg_stat_statements heap buffer overflow executes arbitrary code · CVSS 8.8
Heap buffer overflow in PostgreSQL pg_stat_statements allows the query author to execute arbitrary code as the operating system user running the database, via crafted queries containing array constants. Within major version 18, minor versions before PostgreSQL 18.6 are affected. Versions before PostgreSQL 18 are unaffected.
以上保留官方英文漏洞说明。
尚未记录本分支的修复版本。组件:contrib module。
AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
发布说明中的提及:
CVE-2026-14673 · PostgreSQL amcheck does not clear untrusted search path · CVSS 3.8
Untrusted search path in PostgreSQL amcheck allows a grantee of amcheck function EXECUTE privilege to execute arbitrary functions as the owners of expression indexes that depend on the search path, via setting a hostile search path before calling the amcheck function. Within major versions 18, 16, 15, and 14, minor versions before PostgreSQL 18.6, 16.15, 15.19, and 14.24 are affected. PostgreSQL 17 is unaffected.
以上保留官方英文漏洞说明。
本分支修复于:16.15。组件:contrib module。
官方受影响分支记录:16。
AV:N/AC:L/PR:H/UI:N/S:U/C:L/I:L/A:N
发布说明中的提及:
CVE-2026-14672 · PostgreSQL observable response discrepancy with non-default scram_iterations provides user existence oracle · CVSS 5.3
Observable response discrepancy in PostgreSQL SCRAM authentication allows an unauthenticated user to test the existence of a user via observing the SCRAM iteration count. This requires the probed user to have a non-default scram_iterations count, because the authentication challenge for a nonexistent user reports the default scram_iterations. Within major versions 16-18, minor versions before PostgreSQL 18.6, 17.11, and 16.15 are affected. Versions before PostgreSQL 16 are unaffected.
以上保留官方英文漏洞说明。
本分支修复于:16.15。组件:core server。
官方受影响分支记录:16。
AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N
发布说明中的提及:
CVE-2026-14671 · PostgreSQL refint plan cache type confusion executes arbitrary code · CVSS 8.8
Type confusion in PostgreSQL module "refint" allows an object creator to execute arbitrary code as the operating system user running the database. The fix for this emerged as a non-security bug report, and the fix appear in the git repository with subject "refint: Remove plan cache.", without a CVE number. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.
以上保留官方英文漏洞说明。
本分支修复于:16.15。组件:contrib module。
官方受影响分支记录:16。
AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
发布说明中的提及:
CVE-2026-14670 · PostgreSQL plperl tied object heap buffer overflow executes arbitrary code · CVSS 8.8
Heap buffer overflow in PostgreSQL plperl return of a tied hash allows the function owner to execute arbitrary code as the operating system user running the database, via a crafted function body. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.
以上保留官方英文漏洞说明。
本分支修复于:16.15。组件:core server。
官方受影响分支记录:16。
AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
发布说明中的提及:
CVE-2026-14669 · PostgreSQL to_char heap buffer overflow executes arbitrary code · CVSS 8.8
Heap buffer overflow in PostgreSQL to_char(timestamptz) allows the party choosing the timezone to execute arbitrary code as the operating system user running the database, via a long POSIX timezone abbreviation. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.
以上保留官方英文漏洞说明。
本分支修复于:16.15。组件:core server。
官方受影响分支记录:16。
AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
发布说明中的提及:
CVE-2026-14668 · PostgreSQL ctid type confusion in selectivity estimator discloses derivative of arbitrary read · CVSS 8.1
Type confusion regarding input of PostgreSQL ctid data type selectivity estimator allows an object creator to view a calculation derived from the value of an arbitrary 4-byte span of memory, via a chosen non-ctid input. While the calculation loses precision, substantial memory value recovery appears possible. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.
以上保留官方英文漏洞说明。
本分支修复于:16.15。组件:core server。
官方受影响分支记录:16。
AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H
发布说明中的提及:
CVE-2026-14666 · PostgreSQL row security caching disregards role modifications · CVSS 4.2
Incomplete tracking in PostgreSQL of changes to role membership, role attributes, and database ownership allows a query to continue using cached row-level security policies after those changes require a different policy, via plan reuse. Stale policies continue until some other event invalidates the cache or connection termination ends the session. This permits a user to complete reads and modifications that were recently permitted but now forbidden. An attacker must tailor an attack to a particular application's pattern of privilege removal and role-specific row security policies. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.
以上保留官方英文漏洞说明。
本分支修复于:16.15。组件:core server。
官方受影响分支记录:16。
AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:L/A:N
发布说明中的提及:
CVE-2026-14664 · PostgreSQL regexp heap buffer overflow executes arbitrary code · CVSS 8.8
Heap buffer overflow in PostgreSQL regexp allows the query author to execute arbitrary code as the operating system user running the database, via text that would not pass encoding validation. This shares heritage with CVE-2026-2006, but this case involved unanticipated data growth when round-tripped through pg_wchar. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.
以上保留官方英文漏洞说明。
本分支修复于:16.15。组件:core server。
官方受影响分支记录:16。
AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
发布说明中的提及:
CVE-2026-14663 · PostgreSQL pgcrypto, for OpenSSL-disabled ciphers, silently encrypts to and decrypts from cleartext · CVSS 6.5
Cleartext storage in PostgreSQL pgcrypto disabled ciphers allows a user to recover cleartext, via direct observation of the faulty ciphertext. The OpenSSL version and OpenSSL configuration determine the disabled ciphers. If the application accepts encrypted data as input, decryption will succeed even with the wrong key. This in turn loses the modest protection from the Modification Detection Code (MDC). Affected functions are pgp_sym_encrypt, pgp_sym_decrypt, pgp_pub_encrypt, pgp_pub_decrypt, pgp_sym_encrypt_bytea, pgp_sym_decrypt_bytea, pgp_pub_encrypt_bytea, and pgp_pub_decrypt_bytea. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.
以上保留官方英文漏洞说明。
本分支修复于:16.15。组件:contrib module。
官方受影响分支记录:16。
AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N
发布说明中的提及:
CVE-2026-14662 · PostgreSQL tsvector and tsquery undersize allocations, via integer wraparound · CVSS 8.8
Integer wraparound in PostgreSQL tsvector and tsquery data type functions allows an unprivileged database user to cause the server to undersize an allocation and write out-of-bounds, via crafted large inputs. This may execute arbitrary code as the operating system user running the database. These types are typically sourced from application logic, not taken from the application's user. Hence, application users attacking the database, through the application as a conduit, are unlikely. CVE-2026-6473 had fixed similar problems. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.
以上保留官方英文漏洞说明。
本分支修复于:16.15。组件:core server。
官方受影响分支记录:16。
AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
发布说明中的提及:
CVE-2025-8715 · PostgreSQL pg_dump newline in object name executes arbitrary code in psql client and in restore target server · CVSS 8.8
Improper neutralization of newlines in pg_dump in PostgreSQL allows a user of the origin server to inject arbitrary code for restore-time execution as the client operating system account running psql to restore the dump, via psql meta-commands inside a purpose-crafted object name. The same attacks can achieve SQL injection as a superuser of the restore target server. pg_dumpall, pg_restore, and pg_upgrade are also affected. Versions before PostgreSQL 17.6, 16.10, 15.14, 14.19, and 13.22 are affected. Versions before 11.20 are unaffected. CVE-2012-0868 had fixed this class of problem, but version 11.20 reintroduced it.
以上保留官方英文漏洞说明。
本分支修复于:16.10。组件:core server。
官方受影响分支记录:16。
AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
发布说明中的提及:
CVE-2025-8714 · PostgreSQL pg_dump lets superuser of origin server execute arbitrary code in psql client · CVSS 8.8
Untrusted data inclusion in pg_dump in PostgreSQL allows a malicious superuser of the origin server to inject arbitrary code for restore-time execution as the client operating system account running psql to restore the dump, via psql meta-commands. pg_dumpall is also affected. pg_restore is affected when used to generate a plain-format dump. This is similar to MySQL CVE-2024-21096. Versions before PostgreSQL 17.6, 16.10, 15.14, 14.19, and 13.22 are affected.
以上保留官方英文漏洞说明。
本分支修复于:16.10。组件:core server。
官方受影响分支记录:16。
AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
发布说明中的提及:
CVE-2025-8713 · PostgreSQL optimizer statistics can expose sampled data within a view, partition, or child table · CVSS 3.1
PostgreSQL optimizer statistics allow a user to read sampled data within a view that the user cannot access. Separately, statistics allow a user to read sampled data that a row security policy intended to hide. PostgreSQL maintains statistics for tables by sampling data available in columns; this data is consulted during the query planning process. Prior to this release, a user could craft a leaky operator that bypassed view access control lists (ACLs) and bypassed row security policies in partitioning or table inheritance hierarchies. Reachable statistics data notably included histograms and most-common-values lists. CVE-2017-7484 and CVE-2019-10130 intended to close this class of vulnerability, but this gap remained. Versions before PostgreSQL 17.6, 16.10, 15.14, 14.19, and 13.22 are affected.
以上保留官方英文漏洞说明。
本分支修复于:16.10。组件:core server。
官方受影响分支记录:16。
AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:N/A:N
发布说明中的提及:
CVE-2025-4207 · PostgreSQL GB18030 encoding validation can read one byte past end of allocation for text that fails validation · CVSS 5.9
Buffer over-read in PostgreSQL GB18030 encoding validation allows a database input provider to achieve temporary denial of service on platforms where a 1-byte over-read can elicit process termination. This affects the database server and also libpq. Versions before PostgreSQL 17.5, 16.9, 15.13, 14.18, and 13.21 are affected.
以上保留官方英文漏洞说明。
本分支修复于:16.9。组件:core server。
官方受影响分支记录:16。
AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H
发布说明中的提及:
CVE-2025-12818 · PostgreSQL libpq undersizes allocations, via integer wraparound · CVSS 5.9
Integer wraparound in multiple PostgreSQL libpq client library functions allows an application input provider or network peer to cause libpq to undersize an allocation and write out-of-bounds by hundreds of megabytes. This results in a segmentation fault for the application using libpq. Versions before PostgreSQL 18.1, 17.7, 16.11, 15.15, 14.20, and 13.23 are affected.
以上保留官方英文漏洞说明。
本分支修复于:16.11。组件:core server。
官方受影响分支记录:16。
AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H
发布说明中的提及:
CVE-2025-12817 · PostgreSQL CREATE STATISTICS does not check for schema CREATE privilege · CVSS 3.1
Missing authorization in PostgreSQL CREATE STATISTICS command allows a table owner to achieve denial of service against other CREATE STATISTICS users by creating in any schema. A later CREATE STATISTICS for the same name, from a user having the CREATE privilege, would then fail. Versions before PostgreSQL 18.1, 17.7, 16.11, 15.15, 14.20, and 13.23 are affected.
以上保留官方英文漏洞说明。
本分支修复于:16.11。组件:core server。
官方受影响分支记录:16。
AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:L
发布说明中的提及:
CVE-2025-1094 · PostgreSQL quoting APIs miss neutralizing quoting syntax in text that fails encoding validation · CVSS 8.1
Improper neutralization of quoting syntax in PostgreSQL libpq functions PQescapeLiteral(), PQescapeIdentifier(), PQescapeString(), and PQescapeStringConn() allows a database input provider to achieve SQL injection in certain usage patterns. Specifically, SQL injection requires the application to use the function result to construct input to psql, the PostgreSQL interactive terminal. Similarly, improper neutralization of quoting syntax in PostgreSQL command line utility programs allows a source of command line arguments to achieve SQL injection when client_encoding is BIG5 and server_encoding is one of EUC_TW or MULE_INTERNAL. Versions before PostgreSQL 17.3, 16.7, 15.11, 14.16, and 13.19 are affected.
以上保留官方英文漏洞说明。
本分支修复于:16.7。组件:core server。
官方受影响分支记录:16。
AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
发布说明中的提及:
CVE-2024-7348 · PostgreSQL relation replacement during pg_dump executes arbitrary SQL · CVSS 8.8
Time-of-check Time-of-use (TOCTOU) race condition in pg_dump in PostgreSQL allows an object creator to execute arbitrary SQL functions as the user running pg_dump, which is often a superuser. The attack involves replacing another relation type with a view or foreign table. The attack requires waiting for pg_dump to start, but winning the race condition is trivial if the attacker retains an open transaction. Versions before PostgreSQL 16.4, 15.8, 14.13, 13.16, and 12.20 are affected. The PostgreSQL project thanks Noah Misch for reporting this problem.
以上保留官方英文漏洞说明。
本分支修复于:16.4。组件:core server。
官方受影响分支记录:16。
AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
发布说明中的提及:
CVE-2024-4317 · Restrict visibility of "pg_stats_ext" and "pg_stats_ext_exprs" entries to the table owner · CVSS 3.1
Missing authorization in PostgreSQL built-in views pg_stats_ext and pg_stats_ext_exprs allows an unprivileged database user to read most common values and other statistics from CREATE STATISTICS commands of other users. The most common values may reveal column values the eavesdropper could not otherwise read or results of functions they cannot execute. Installing an unaffected version only fixes fresh PostgreSQL installations, namely those that are created with the initdb utility after installing that version. Current PostgreSQL installations will remain vulnerable until they follow the instructions in the release notes, which are provided as a convenience in the below section. Within major versions 14-16, minor versions before PostgreSQL 16.3, 15.7, and 14.12 are affected. Versions before PostgreSQL 14 are unaffected. This fix only fixes fresh PostgreSQL installations, namely those that are created with the initdb utility after this fix is applied. If you have a current PostgreSQL installation and are concerned about this issue, please use the following remediation steps to fix the issue: From the above URLs, you can click the URL that says "raw" to download a version that you can copy and paste. Be sure to use the script appropriate to your PostgreSQL major version. If you do not see this file, either your version is not vulnerable (only PostgreSQL 14, 15, and 16 are affected) or your minor version is too old to have the fix. \i /usr/share/postgresql/fix-CVE-2024-4317.sql ALTER DATABASE template0 WITH ALLOW_CONNECTIONS true; After executing the fix-CVE-2024-4317.sql script in template0 and template1 , you should revoke the ability for template0 to accept connections. You can do this with the following command: ALTER DATABASE template0 WITH ALLOW_CONNECTIONS false; The PostgreSQL project thanks Lukas Fittl for reporting this problem.
以上保留官方英文漏洞说明。
本分支修复于:16.3。组件:core server。
官方受影响分支记录:16。
AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:N/A:N
发布说明中的提及:
CVE-2024-10979 · PostgreSQL PL/Perl environment variable changes execute arbitrary code · CVSS 8.8
Incorrect control of environment variables in PostgreSQL PL/Perl allows an unprivileged database user to change sensitive process environment variables (e.g. PATH ). That often suffices to enable arbitrary code execution, even if the attacker lacks a database server operating system user. Versions before PostgreSQL 17.1, 16.5, 15.9, 14.14, 13.17, and 12.21 are affected. The PostgreSQL project thanks Coby Abrams for reporting this problem.
以上保留官方英文漏洞说明。
本分支修复于:16.5。组件:core server。
官方受影响分支记录:16。
AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
发布说明中的提及:
CVE-2024-10978 · PostgreSQL SET ROLE, SET SESSION AUTHORIZATION reset to wrong user ID · CVSS 4.2
Incorrect privilege assignment in PostgreSQL allows a less-privileged application user to view or change different rows from those intended. An attack requires the application to use SET ROLE , SET SESSION AUTHORIZATION , or an equivalent feature. The problem arises when an application query uses parameters from the attacker or conveys query results to the attacker. If that query reacts to current_setting('role') or the current user ID, it may modify or return data as though the session had not used SET ROLE or SET SESSION AUTHORIZATION . The attacker does not control which incorrect user ID applies. Query text from less-privileged sources is not a concern here, because SET ROLE and SET SESSION AUTHORIZATION are not sandboxes for unvetted queries. Versions before PostgreSQL 17.1, 16.5, 15.9, 14.14, 13.17, and 12.21 are affected. The PostgreSQL project thanks Tom Lane for reporting this problem.
以上保留官方英文漏洞说明。
本分支修复于:16.5。组件:core server。
官方受影响分支记录:16。
AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:L/A:N
发布说明中的提及:
CVE-2024-10977 · PostgreSQL libpq retains an error message from man-in-the-middle · CVSS 3.1
Client use of server error message in PostgreSQL allows a server not trusted under current SSL or GSS settings to furnish arbitrary non-NUL bytes to the libpq application. For example, a man-in-the-middle attacker could send a long error message that a human or screen-scraper user of psql mistakes for valid query results. This is probably not a concern for clients where the user interface unambiguously indicates the boundary between one error message and other text. Versions before PostgreSQL 17.1, 16.5, 15.9, 14.14, 13.17, and 12.21 are affected. The PostgreSQL project thanks Jacob Champion for reporting this problem.
以上保留官方英文漏洞说明。
本分支修复于:16.5。组件:client。
官方受影响分支记录:16。
AV:N/AC:H/PR:N/UI:R/S:U/C:N/I:L/A:N
发布说明中的提及:
CVE-2024-10976 · PostgreSQL row security below e.g. subqueries disregards user ID changes · CVSS 4.2
Incomplete tracking in PostgreSQL of tables with row security allows a reused query to view or change different rows from those intended. CVE-2023-2455 and CVE-2016-2193 fixed most interaction between row security and user ID changes. They missed cases where a subquery, WITH query, security invoker view, or SQL-language function references a table with a row-level security policy. This has the same consequences as the two earlier CVEs. That is to say, it leads to potentially incorrect policies being applied in cases where role-specific policies are used and a given query is planned under one role and then executed under other roles. This scenario can happen under security definer functions or when a common user and query is planned initially and then re-used across multiple SET ROLEs. Applying an incorrect policy may permit a user to complete otherwise-forbidden reads and modifications. This affects only databases that have used CREATE POLICY to define a row security policy. An attacker must tailor an attack to a particular application's pattern of query plan reuse, user ID changes, and role-specific row security policies. Versions before PostgreSQL 17.1, 16.5, 15.9, 14.14, 13.17, and 12.21 are affected.
以上保留官方英文漏洞说明。
本分支修复于:16.5。组件:core server。
官方受影响分支记录:16。
AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:L/A:N
发布说明中的提及:
CVE-2024-0985 · PostgreSQL non-owner REFRESH MATERIALIZED VIEW CONCURRENTLY executes arbitrary SQL · CVSS 8.0
UPDATE (June 19, 2024) : Added v16 as impacted. Updated description to clarify the attack vector. Late privilege drop in REFRESH MATERIALIZED VIEW CONCURRENTLY in PostgreSQL allows an object creator to execute arbitrary SQL functions as the command issuer. The command intends to run SQL functions as the owner of the materialized view, enabling safe refresh of untrusted materialized views. The victim is a superuser or member of one of the attacker's roles. The attack requires luring the victim into running REFRESH MATERIALIZED VIEW CONCURRENTLY on the attacker's materialized view.
以上保留官方英文漏洞说明。
本分支修复于:16.2。组件:core server。
官方受影响分支记录:16。
AV:N/AC:L/PR:L/UI:R/S:U/C:H/I:H/A:H
发布说明中的提及:
CVE-2023-5870 · Role "pg_signal_backend" can signal certain superuser processes · CVSS 2.2
Documentation says the pg_signal_backend role cannot signal "a backend owned by a superuser". On the contrary, it can signal background workers, including the logical replication launcher. It can signal autovacuum workers and the autovacuum launcher. Signaling autovacuum workers and those two launchers provides no meaningful exploit, so exploiting this vulnerability requires a non-core extension with a less-resilient background worker. For example, a non-core background worker that does not auto-restart would experience a denial of service with respect to that particular background worker. The PostgreSQL project thanks Hemanth Sandrana and Mahendrakar Srinivasarao for reporting this problem.
以上保留官方英文漏洞说明。
本分支修复于:16.1。组件:core server。
官方受影响分支记录:16。
AV:N/AC:H/PR:H/UI:N/S:U/C:N/I:N/A:L
发布说明中的提及:
CVE-2023-5869 · Buffer overrun from integer overflow in array modification · CVSS 8.8
While modifying certain SQL array values, missing overflow checks let authenticated database users write arbitrary bytes to a memory area that facilitates arbitrary code execution. Missing overflow checks also let authenticated database users read a wide area of server memory. The CVE-2021-32027 fix covered some attacks of this description, but it missed others. The PostgreSQL project thanks Pedro Gallegos for reporting this problem.
以上保留官方英文漏洞说明。
本分支修复于:16.1。组件:core server。
官方受影响分支记录:16。
AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
发布说明中的提及:
CVE-2023-5868 · Memory disclosure in aggregate function calls · CVSS 4.3
Certain aggregate function calls receiving "unknown"-type arguments could disclose bytes of server memory from the end of the "unknown"-type value to the next zero byte. One typically gets an "unknown"-type value via a string literal having no type designation. We have not confirmed or ruled out viability of attacks that arrange for presence of notable, confidential information in disclosed bytes. The PostgreSQL project thanks Jingzhou Fu for reporting this problem.
以上保留官方英文漏洞说明。
本分支修复于:16.1。组件:core server。
官方受影响分支记录:16。
AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N
发布说明中的提及: