环境

系统平台:N/A
版本:9.0.4,9.0.3,6.0.4,4.5.9,4.5.10,4.5.11

BUG/漏洞编码

HGVE-2025-E011,CVE-2025-12818

症状

PostgreSQL libpq 客户端库中多个函数存在整数回绕问题,允许应用程序输入提供方或网络对端导致 libpq 分配内存不足并发生数百兆字节的越界写入。这将导致使用 libpq 的应用程序出现分段错误。PostgreSQL 18.1、17.7、16.11、15.15、14.20 和 13.23 之前的版本均受影响。

触发条件

该漏洞是由于 libpq 库中多个字符串转义和字节转义函数在处理大尺寸输入时存在整数溢出问题。

解决方案

修复方案主要包括以下几个方面:

(1)引入溢出检测函数:

添加 add_size_overflow 函数来安全地进行大小计算

在所有关键的大小计算点添加溢出检查

(2)修改危险的大小计算:

将 int 类型改为 size_t 以支持更大的尺寸

在计算前预先检查是否会发生溢出

(3)添加适当的错误处理:

检测到溢出时返回 NULL 并设置适当的错误信息

避免在溢出情况下继续进行内存分配

补丁下载地址:

链接: https://pan.baidu.com/s/1zaqUn3NX2_QUT49m4Q-flQ?pwd=tmvs 提取码: tmvs

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐