HGVE-2025-E003
PostgreSQL 在 GB18030 编码验证中存在缓冲区过度读取漏洞,允许数据库输入提供者在某些平台上通过触发 1 字节的越界读取导致进程终止,从而实现临时拒绝服务。当输入数据在内存分配末尾恰好为不完整字符(如 0xFE)时,原编码验证函数 pg_encoding_mblen 未严格检查剩余字节长度,直接尝试读取下一个字节,导致越界访问。pwd=ytsx 提取码: ytsx。版本:4.5,4
·
环境
系统平台: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
更多推荐
所有评论(0)