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 日完成了整个现有服务器群的更新,解决了剩余问题。修复包括:
- 阻止 PostgreSQL 中的复制程序,以缓解灵活服务器 PostgreSQL 服务中报告的远程代码执行问题。
- 修复显示证书名称的详细 PostgreSQL 错误消息。
技术细节
以下是用于提升权限和远程代码执行的步骤:
- 在我们的特定 PostgreSQL pg_admin 实现中,扩展处理方式的问题可能导致 pg_admin 提升为超级用户。
- 由于灵活服务器实例之间的网络隔离不足,攻击者有可能发现并尝试连接到区域内的其他灵活服务器实例。
- 由于用于将证书通用名称映射到用户的过于宽松的正则表达式,可以绕过用于灵活服务器 PostgreSQL 实例之间复制连接证书身份验证。
Wiz 已发布关于此问题的博客,可在此处查看。我们要感谢 Wiz 发现此问题并与微软密切合作,帮助保护我们的客户。