环境

系统平台:N/A
版本:9.0.1

BUG/漏洞编码

HGVE-2025-E001

症状

PostgreSQL的引用API在文本编码验证失败时未能正确中和引用语法,导致在某些使用模式下可能引发SQL注入漏洞。

具体来说,当应用程序使用PQescapeLiteral()、PQescapeIdentifier()、PQescapeString()或PQescapeStringConn()函数时,如果输入文本未能通过编码验证,攻击者可能利用此漏洞执行SQL注入攻击。此外,当client_encoding设置为BIG5且server_encoding设置为EUC_TW或MULE_INTERNAL时,PostgreSQL命令行工具也可能受到SQL注入的影响。

触发条件

当client_encoding设置为BIG5且server_encoding设置为EUC_TW或MULE_INTERNAL时。

解决方案

1.修复引用语法中和逻辑:

在 PQescapeLiteral()、PQescapeIdentifier()、PQescapeString() 和 PQescapeStringConn() 函数中,增加对编码验证失败文本的中和处理。

2.修复命令行工具的SQL注入问题:

在命令行工具中增加对client_encoding和server_encoding不匹配时的输入验证。

3.代码修改示例:

在 PQescapeLiteral() 函数中增加编码验证失败时的错误处理逻辑:

if (!is_valid_encoding(input)) {

return handle_invalid_encoding(input);

}

安装漏洞补丁包。下载地址:

链接: https://pan.baidu.com/s/1cY_QFKPTADQIXPt4d-QQaA?pwd=8q5f 提取码: 8q5f

Logo

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

更多推荐