Azure Database for PostgreSQL 灵活服务器权限提升与远程代码执行
MSRC 在协调漏洞披露(CVD)框架下收到云安全供应商 Wiz 的报告,指出 Azure Database for PostgreSQL 灵活服务器存在一个可能导致区域内未授权跨账户数据库访问的问题。攻击者利用灵活服务器复制用户身份验证过程中的权限提升漏洞,通过未正确锚定的正则表达式绕过认证,从而访问其他客户的数据库。该问题在 48 小时内(2022 年 1 月 13 日)得到缓解。
客户影响
所有使用公共访问网络选项部署的灵活服务器 PostgreSQL 服务器均受此安全漏洞影响。使用私有访问网络选项的客户未暴露于此漏洞。PostgreSQL 的单服务器产品未受影响。
分析显示,未有客户数据通过此漏洞被访问。Azure 已更新所有灵活服务器以修复此漏洞。客户无需采取任何措施。为进一步减少暴露风险,建议客户在设置灵活服务器实例时启用私有网络访问。相关信息请参阅灵活服务器网络文档。
微软的响应
微软在获悉此问题后采取了以下步骤:
- 采取主动方法,首先通过防止跨租户攻击来解决最关键的漏洞,从而阻止任何横向数据访问。这些修复于 2022 年 1 月 13 日全球部署。
- 提供不同租户底层虚拟机实例之间的完全隔离。
- 修复 pg_ident.conf 问题,仅当完全匹配主题名称时才允许复制权限,而不是前缀匹配。
在补丁部署期间,还解决了所有新服务器创建问题,阻止了权限提升和远程代码访问。
修复部署后,我们的安全团队和 Wiz 验证了修复。
截至 2022 年 2 月 25 日,已完成整个现有服务器群的更新,解决了剩余问题。修复包括:
- 阻止 Postgres 中的复制程序,以缓解灵活服务器 PostgreSQL 服务中报告的远程代码执行问题。
- 修复显示证书名称的详细 Postgres 错误消息。
技术细节
以下是用于实现权限提升和远程代码执行的步骤:
- 在我们的特定 Postgres pg_admin 实现中,扩展处理方式的问题可能允许 pg_admin 提升为超级用户。
- 由于灵活服务器实例之间的网络隔离不足,攻击者有可能发现并尝试连接到区域内的其他灵活服务器实例。
- 通过使用过于宽松的正则表达式将证书通用名称映射到用户,可以绕过用于灵活服务器 Postgres 实例之间复制连接的证书认证。
Wiz 已发布关于此问题的博客,可在此处查看。我们感谢 Wiz 发现此问题并与微软密切合作,帮助保护我们的客户。