PostgreSQL 通过隐蔽时间信道泄露 MD5 哈希密码HGVE-2026-E012
文章目录
- 环境
- BUG/漏洞编码
- 症状
- 触发条件
- 解决方案
环境
系统平台:N/A
版本:9.0.3,9.0.4,9.0.5,4.5.8,4.5.10,4.5.11,6.0.4
BUG/漏洞编码
HGVE-2026-E012
症状
PostgreSQL 认证中 MD5 哈希密码比较存在隐蔽时间信道,允许攻击者恢复足以完成认证的用户凭据。该问题不影响 scram-sha-256 密码,后者是所有受支持版本中的默认方式。不过,当前数据库中可能仍有从 PostgreSQL 13 或更早版本升级而来的 MD5 哈希密码。PostgreSQL 18.4、17.10、16.14、15.18 和 14.23 之前的版本受影响。
触发条件
漏洞根因是 MD5 哈希密码比较过程存在可观测的时间差,比较逻辑不是恒定时间。攻击者通过大量认证尝试测量响应时间,可逐步推断认证所需的哈希凭据。scram-sha-256 认证路径不受该时间信道影响。
解决方案
代码修复应将 MD5 哈希密码比较改为恒定时间比较,避免比较过程因首个不同字节位置不同而产生可观测时间差。同时建议迁移存量 MD5 密码至 scram-sha-256,调整 pg_hba.conf 禁用 md5 认证,并要求用户重置历史 MD5 口令。修复后应增加认证比较耗时差异测试,确认错误凭据不同位置的差异不会形成可利用时间信道。
安装漏洞补丁包。 下载地址:
v9.0.3,v9.0.4,v9.0.5 :
链接: https://pan.baidu.com/s/15nI0Vgxmy5Yy-hCspSOm2g?pwd=qx2e 提取码: qx2e
V4.5.8,V4.5.10,V4.5.11,V6.0.4:
链接: https://pan.baidu.com/s/1wbOp7Qhb8-pepw7ko63zag?pwd=b56y 提取码: b56y 。
