近日,Nginx UI 中被发现一处严重漏洞,未经身份验证的攻击者能够利用该漏洞下载并解密完整的系统备份。
该漏洞编号为 CVE-2026-27944,被归类为 CWE-306(关键功能缺少身份验证)和 CWE-311(敏感数据明文传输),其 CVSS 评分为 9.8(严重)。
受影响的版本为 Nginx UI 2.3.2 及之前所有版本,官方已在 2.3.3 版本中修复,管理员应立即升级。
一、漏洞根源:两大安全缺陷
该漏洞源于 Nginx UI Go 代码库中的两个严重安全失误:
/api/backup 端点完全暴露与其他受保护的管理端点不同,
/api/backup接口未进行任何身份验证检查,直接向公网开放。加密密钥明文传输系统在 HTTP 响应头
X-Backup-Security中,以明文形式返回了 Base64 编码的 AES-256 加密密钥和初始化向量(IV)。
二、攻击方式
攻击者只需向备份端点发送一个普通的 GET 请求,即可下载加密的 ZIP 压缩包。同时,响应头中携带的密钥可立即用于解密压缩包内容——整个过程简单直接。
目前已有公开的概念验证(PoC)脚本,演示了如何通过 Python 轻松利用该漏洞提取目标文件。
三、泄露的数据
一旦备份被解密,攻击者将获得以下高度敏感的系统文件:
database.db:包含用户凭据的数据库文件app.ini:应用程序配置文件
进一步地,所有 SSL 证书、私钥、Nginx 配置文件以及虚拟主机设置也完全暴露在攻击者面前。
四、后续攻击风险
掌握这些信息后,攻击者可以:
接管 Nginx UI 管理控制台
通过中间人攻击拦截加密通信
利用窃取的会话令牌和凭证,横向渗透至内部网络
五、缓解措施
1、立即行动:升级至 2.3.3 或更高版本
根据 GitHub 的安全公告,最紧急的修复措施是将 Nginx UI 升级到 2.3.3 或更高版本。
2、严格访问控制
使用防火墙限制对
/api/backup端点的网络访问在补丁应用前,阻止对
/api/backup的公网访问,并将所有管理接口限制在可信内网中
3、主动检测
安全团队应密切监控服务器日志,查找未经验证的 GET /api/backup 请求。同时,持续检查出站 HTTP 响应中是否包含 X-Backup-Security 头,该头的出现意味着加密密钥已泄露。
此次漏洞再次警示:即使管理接口存在,也必须对所有敏感端点实施身份验证;同时,任何加密密钥都绝不能以明文形式传输。立即检查您的 Nginx UI 版本,并采取相应措施。
夜雨聆风