PostGREShell:PostgreSQL中的缺陷将备份账户变成后门

By: www.diariobitcoin.com|2026/09/04 14:12:20

自2014年以来,PostgreSQL复制中的一个缺陷可能将常规备份账户转变为代码执行、超级用户访问和持久后门。该问题已在受影响的分支中修复,但其使用范围的广泛性需要审查凭据、配置和网络连接。


  • 根据现有的安全建议,CVE-2026-6471漏洞影响PostgreSQL 18.5、17.11、16.15、15.19和14.24之前的版本。
  • 具有REPLICATION属性的账户可以加载恶意库并在数据库进程中执行代码。
  • Cyera Research发现114个流通中的恶意PostgreSQL插件,尽管没有将其与该缺陷的利用联系起来。

在PostgreSQL中存在超过十年的漏洞可能将常规备份账户转变为控制数据库和服务器的手段。该缺陷被标识为CVE-2026-6471,并由Cyera Research称为PostGREShell,影响逻辑复制功能,并允许使用具有REPLICATION属性的账户加载任意代码,而无需超级用户权限。

潜在的范围很广,因为PostgreSQL支持备份系统、复制、迁移、修改数据捕获和实时分析,服务于数千个组织。研究表明,超过39,000家经过验证的公司在生产中使用该数据库,包括Netflix、Instagram、Spotify和Uber,以及AWS RDS、Azure Database、Google Cloud SQL、Supabase和Neon等服务。

隐藏在复制中的缺陷

在生产安装中,主数据库通常与一个或多个保持同步副本的副本一起工作。这种架构允许备份、灾难恢复和读取扩展,因此复制账户通常被视为低风险的操作组件,尽管它们与敏感服务器功能保持直接连接。

PostgreSQL使用特定协议来同步这些系统,并要求REPLICATION属性以启动流复制。相同的凭据出现在备份工具、备用服务器、变更捕获通道和读取预写日志的监控系统中,因此一个看似有限的账户可能存在于许多关键环境中。

问题出在格式化逻辑复制中更改的输出插件。当客户端创建复制空间时,他们还指定插件的名称,该名称可以是编译了扩展的库,如.so、.dll或.dylib,并且PostgreSQL在主数据库进程中加载它。

该系统已经有一个名为check_restricted_library_name()的防御机制,旨在防止非超级用户用户从绝对路径或通过目录遍历技术加载库。然而,复制使用的路径并未调用该检查,因此插件名称直接到达操作系统加载器,而没有对SQL命令LOAD应用的验证。

从恶意库到服务器控制

复制协议解析器接受插件名称中的许多字符,包括斜杠、点、像../这样的序列和Windows UNC路径。成功传递特制名称的攻击者可以使PostgreSQL请求位于任意路径的库,触发Linux和macOS上的dlopen()或Windows上的LoadLibrary()等函数。

库的加载立即在PostgreSQL进程中执行其初始化函数。由于插件在相同的地址空间中运行,并且C代码没有隔离,因此一旦恶意库开始执行,SQL权限模型的正常保护就变得不足。

利用条件因操作系统而异。在Windows上,具有REPLICATION的账户、配置为wal_level = logical的服务器以及对SMB端口445的网络访问可能足以使PostgreSQL通过UNC路径加载托管在远程服务器上的DLL,而攻击者无需事先将文件复制到目标机器。

在Linux和macOS上,研究描述了基于自动NFS挂载的场景,特别是在autofs处于活动状态时,以及攻击者已经可以将库写入磁盘的情况。在标准环境、Docker容器或Kubernetes集群中,利用需要额外的通道将恶意文件本地放置,而Windows在上述条件下提供了完全的远程路径。

权限提升和持久性

根据披露的分析,作为postgres系统用户的初始访问并不构成攻击的结束。加载的代码可以操纵内部PostgreSQL结构,成为会话的超级用户,并直接修改定义角色权限的目录pg_authid

在SQL执行器之外,该修改并未通过通常的访问控制列表检查或权限规则。攻击者可以激活超级用户标志,并添加机制使后续检查返回有利响应,而该更改的记录与正常目录更改类似。

拥有超级用户权限后,攻击者可以读取所有数据库中的表,包括客户数据、财务记录、应用程序密钥和存储凭据。他们还可以使用COPY ... TO PROGRAM等函数执行命令,通过pg_read_file()读取敏感文件,或使用lo_export()等工具写入系统用户可访问的位置。

研究还描述了几种可以在重启后存活并使清理复杂的持久性机制。这些包括对pg_hba.conf的更改以允许无密码连接、在稳定路径中的插件副本,以及在shared_preload_libraries中的注册,以及在管理员尝试恢复时重新应用超级用户权限。

修正、范围和紧急措施

PostgreSQL安全团队在2026年2月收到了报告,并在2月27日确认了该漏洞,然后协调了小更新的修复。CSO Online报道,针对版本18.6、17.11、16.15、15.19和14.24的补丁于8月13日发布。安全建议指出,受影响的版本是这些修订之前的版本,而该缺陷可以追溯到2014年发布的PostgreSQL 9.4开始的分支。

尽管CVE-2026-6471获得了7.2的CVSS评分,但所描述的影响结合了代码执行、权限提升、信息访问和持久性。实际严重性取决于复制账户的暴露、网络配置和平台,但在基本操作中存在这些凭据使得仅依赖它们不是管理员账户是不够的。

Cyera Research在VirusTotal上的威胁审查识别了114个恶意PostgreSQL插件,包括木马、加密货币挖矿者和反向Shell。该公司没有将这些文件与CVE-2026-6471的利用联系起来,表明这些插件已经吸引了恶意活动,但并未确认这些实例是否利用了该漏洞。

管理员应首先安装相应的更新,并审核所有具有REPLICATION属性的账户。当不严格必要时,建议移除此权限,限制pg_hba.conf中的连接到已知地址,并避免对整个互联网开放的复制规则,如0.0.0.0/0

加固应包括阻止数据库服务器对SMB端口445和NFS端口2049的无必要出站连接,以及在不需要时禁用autofs。安全团队应寻找来自意外地址的CREATE_REPLICATION_SLOT命令、带有斜杠或遍历序列的插件名称,以及不寻常的复制空间。

该案例还暴露了可扩展系统中的一个反复出现的问题:插件加载路径可能与保护核心操作的安全模型分离。PostgreSQL保护了一个加载路径,但复制路径未将该防御与相同的控制连接,留下了一个次要的入口点多年,这可能将常规基础设施转变为完全的妥协。

-- 价格

--
--
--

本内容仅供参考,不构成任何金融、投资、法律或税务建议。文中提及的任何活动、奖励、线上活动或相关信息,不应被视为对购买、出售或交易任何加密资产的推荐、招揽或邀请。加密资产具有高波动性,存在价值损失风险。WEEX服务、产品及相关活动的可用性可能因地区而异。用户在参与前有责任确保符合当地适用法律法规。

猜你喜欢

iconiconiconiconiconicon
客户服务:@weikecs
商务合作:@weikecs
量化做市商合作:bd@weex.com