环境

系统平台:N/A
版本:4.5,4.5.1,4.5.2,4.5.6,4.5.7,4.5.8,4.5.9,4.5.10,9.0.1

BUG/漏洞编码

症状

PostgreSQL 在 GB18030 编码验证中存在缓冲区过度读取漏洞,允许数据库输入提供者在某些平台上通过触发 1 字节的越界读取导致进程终止,从而实现临时拒绝服务。该漏洞影响数据库服务器及 libpq。在 PostgreSQL 17.5 之前、16.9 之前、15.13 之前、14.18 之前和 13.21 之前的版本中均存在此问题。

触发条件

GB18030 编码的部分多字节字符需读取后续字节以确定长度。当输入数据在内存分配末尾恰好为不完整字符(如 0xFE)时,原编码验证函数 pg_encoding_mblen 未严格检查剩余字节长度,直接尝试读取下一个字节,导致越界访问。攻击者可构造特定输入触发此漏洞,引发 SIGSEGV 信号,使进程崩溃。

解决方案

修改代码逻辑,避免越界访问。

安装漏洞补丁包。

下载地址:

链接: https://pan.baidu.com/s/11ieY-L2ZpSvdsCSK6R52nQ?pwd=ytsx 提取码: ytsx

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐