2026年11月,PostgreSQL发布18.7、17.12、16.16、15.20和14.25版本,修复CVE-2026-6460。该修复改变了复合类型存储及扩展接口,因此所有扩展均已针对新小版本重建。旧扩展在新服务器上缺少安全校验,新扩展在旧服务器上会因未定义符号无法加载,所以服务器与扩展必须在同一事务中一起更新。扩展包现要求对应小版本,今后每次小版本发布都会重建扩展。14.25是PostgreSQL 14的最终版本。
作者在挖掘 pg_clickhouse 漏洞后,追问 PostgreSQL 如何判定数据类型,发现 Datum 本身不含类型信息,类型由 OID 决定。他利用预编译语句:先以 UUID 字段构造复合类型并准备查询,执行前用 ALTER TYPE 将字段改为 bytea,使旧 UUID 字节被当作 varlena 外部指针解析,触发类型混淆并导致段错误。进一步伪造 ExpandedObjectHeader 与方法表,可劫持控制流调用 system();再借数组元素类型混淆泄露内存地址以绕过 ASLR。该漏洞编号为 CVE-2026-6460,已存在 22 年,共报告 21 个变体,影响几乎所有托管 PostgreSQL 平台。
完成下面两步后,将自动完成登录并继续当前操作。