CVE-2026-111438: check_hba_replication 认证与访问控制绕过
在 openGauss-server 的 src/common/backend/libpq/hba.cpp 中,复制连接认证存在访问控制绕过。hbagetauthmethod() 在处理 HADR/SW 复制发送方时,不要求 isnodeinternalconnection(),直接调用 checkhbareplication()。checkhbareplication() 仅按 replication 标记做弱匹配,缺少普通 checkhba() 中的远程 trust 禁止等完整校验。因此,非内部网络的 HADR/SW 复制连接可绕过内部连接限制和完整 pghba 策略完成认证,进而通过复制协议读取备份与日志数据。
此问题随 HADR 复制发送方绕过内部连接校验进入代码,自 3.0.0 起即存在。受影响版本包括 3.0.x、3.1.x、5.0.x、5.1.0、6.0.x,以及 7.0.0-RC1、7.0.0-RC2、7.0.0-RC3。该问题已在 7.0.0-LTS版本修复,通过要求 HADR/SW 复制发送方必须经过 isnodeinternalconnection 校验,使外部复制连接改走普通 checkhba() 并触发禁止远程 trust 策略。修复pr见https://gitcode.com/opengauss/openGauss-server/pull/9757。
Affected Software
Event History
Frequently Asked Questions
哪些部署会受到实际暴露?
运行受影响版本且允许来自非内部网络的 HADR/SW 复制连接的 openGauss-server 部署会暴露。问题自 3.0.0 起存在,涉及 3.0.x、3.1.x、5.0.x、5.1.0、6.0.x 以及 7.0.0-RC1、RC2 和 RC3。
攻击者需要具备什么条件才能利用?
攻击者需要能够从非内部网络发起 HADR/SW 复制连接。漏洞路径对复制标记进行弱匹配,未要求通过 is_node_internal_connection(),从而可能绕过完整的 pg_hba 访问控制策略。
成功利用后能够造成什么影响?
成功认证后,攻击者可通过复制协议读取备份和日志数据。该问题的影响主要是数据机密性和完整性风险。
无法立即升级时可以采取什么缓解措施?
限制非内部网络到复制相关服务的连接,避免外部来源能够发起 HADR/SW 复制连接。修复后的行为要求复制发送方通过 is_node_internal_connection() 校验,外部连接会转入普通 check_hba() 路径并触发远程 trust 禁止策略。
如何确认修复状态?
7.0.0-LTS 已包含修复。受影响的 7.0.0 预发布版本为 RC1、RC2 和 RC3;其他列出的受影响版本需要依据其是否包含要求 HADR/SW 复制发送方进行 is_node_internal_connection() 校验的修复来确认。