攻击者利用了一个可选的Nextcloud应用程序Collabora Online - Built-in CODE Server中的漏洞,在Nextcloud服务器上植入了web shell。三名管理员在GitHub上报告了此问题,首次记录的攻击发生在9月10日。
web shell是一个小文件,可以执行攻击者通过web请求发送的任何命令,使用的是web服务器账户的权限。该漏洞允许未经身份验证的请求在服务器上运行命令,但仅在应用程序的本地文档服务器未运行时,例如在重启、升级或崩溃期间。
Collabora在9月11日发布的版本26.4.303中修复了该漏洞,并在10月14日发布了标识符为CVE-2026-110447的公告,警告关闭该应用程序并不能解决问题:必须更新或删除它。
受影响的对象
该应用程序由Collabora以包名richdocumentscode发布,下载Collabora Online Development Edition (CODE)的副本并在Nextcloud服务器上运行。
这使得Nextcloud Office可以在没有单独Collabora服务器的情况下编辑文档。其商店列表中表示它是“用于本地测试和非生产使用”和“用于个人使用或小团队”。
Collabora的公告涵盖了所有版本26.4.303之前的版本,并表示独立的Collabora Online服务器不受影响。10月3日在Nextcloud社区论坛上发布的警告指出,如果安装仅使用Nextcloud Office应用程序(richdocuments)而不使用内置应用程序,无论其Collabora服务器是在Docker中运行、从Linux包中运行还是在托管提供商处运行,均不受影响。
该应用程序的proxy.php脚本在请求到达时启动本地CODE服务器,而没有任何监听。在版本26.4.302及之前,脚本将请求中的文本(包括其路径)放置在一个双引号的bash命令中,shell仍然会执行以$(...)书写的任何内容。
一个隐藏在路径中的命令请求以web服务器用户身份运行该命令。由于脚本仅在需要启动服务器时构建该命令,因此攻击仅在服务器关闭时有效,例如在容器重启、升级或崩溃期间。
该脚本是一个普通的PHP文件,web服务器直接从应用程序的文件夹中运行,并且未加载Nextcloud的任何代码。
“仅禁用该应用程序不足以避免问题;必须将其升级到>= 26.4.303或删除,”Collabora在公告中表示。
修复后的版本需要Nextcloud 30或更高版本。
Nextcloud 29及更早版本已结束生命周期,而应用商店仍向其提供受影响的版本,因此其用户应升级Nextcloud或删除该应用程序。Collabora针对同一脚本中的另一个命令注入漏洞CVE-2025-66208的修复,去年12月披露,并不能防止此漏洞。
攻击者所做的
第一份报告来自一名托管多个Nextcloud服务器的管理员,他在GitHub上写道,这些服务器自前一天起就被黑客入侵。来自其中两个服务器的访问日志显示,9月10日19:51和9月11日09:56(UTC+2)均来自同一IP地址,并且都指向proxy.php?status,且请求路径中隐藏了一个shell命令。该管理员的所有服务器均运行版本26.4.302。
该命令将一行PHP web shell解码到应用程序的文件夹中,并试图将服务器的uname -a输出发送到webhook.site地址。在一台服务器上,攻击者随后使用shell搜索凭证存储和加密货币钱包,包括*.kdbx、wallet.dat和keystore.json文件,以及bitwarden、1password、.bitcoin、.electrum、.monero和.ethereum等名称。
审核的请求未显示任何归档、上传或复制文件的命令,但该管理员写道,web服务器账户可以读取的任何内容都必须视为潜在暴露。
另外两名管理员在自己的实例中报告了相同的情况。一名在Nextcloud的完整性检查标记出一个新的PHP文件时发现了shell,另一名则通过关于服务器上sudo尝试失败的电子邮件得知了入侵。没有报告显示攻击者获得了root访问权限。
在更新到26.4.303后,其中一名管理员在9月14日记录了来自第二个IP地址的另一次尝试,负载与之前相同。它启动的CODE服务器在启动选项中携带了攻击文本,但没有出现新的shell文件。项目的发言人mmeeks在该线程中回复说,“输出看起来很可怕,但应该是无害的”,并告诉用户更新并删除任何残留的shx*.php文件。
CVE记录将该漏洞描述为“在2026年9月和10月被广泛利用”。受影响的服务器数量尚不清楚。“这仅影响开发版,并且仅在这种(相对较少见的)内置CODE服务器部署模式中,该模式下载本地appimage,”mmeeks写道。
现在该怎么办
应采取的措施,按顺序:
将在Nextcloud的应用列表中显示为Collabora Online - Built-in CODE Server的richdocumentscode更新到26.4.303或更高版本,或删除该应用程序。在Nextcloud中禁用它并不能关闭漏洞。
对于无法安装26.4.303的Nextcloud 29或更早版本,升级Nextcloud或删除该应用程序。
如果您已经更新,请查找shx*.php文件,从apps/richdocumentscode开始,并删除它们。然后检查您的访问日志,至少回溯到9月10日,查找路径包含%2e%2e、$(或${IFS}的proxy.php?status请求,并查找web服务器账户的sudo尝试。将该账户可以读取的任何内容视为潜在暴露,正如第一位报告者所建议的那样。
版本26.4.402于9月24日发布,重写了启动命令,以将每个选项作为单独的参数传递,但管理员报告称在某些设置中无法启动或无法打开文档,并已回退到公告中指定的修复版本26.4.303。截至10月14日,没有出现更新的版本。
来自管理员日志的指示:
文件:shrf4645.php、shxa35d0.php、shx5cf91.php、shxd33ce.php和shxf4645.php,在第一位报告者的apps/richdocumentscode/中发现。