CVE-2026-27944:NginxUI信息泄露漏洞分析

admin 2026-06-30 10:08:40 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 本文分析了NginxUIv2.0.8及以下版本存在的未授权任意文件读取漏洞(CVE-2026-27944)。该漏洞源于备份下载接口/api/backup/download未做认证且未对文件路径进行安全校验,攻击者可通过路径穿越读取系统敏感文件如Nginx配置、SSL私钥、日志等。官方在v2.0.9版本中通过添加JWT认证和路径净化进行了修复,并提供了临时缓解措施。 综合评分: 85 文章分类: 漏洞分析,WEB安全,安全工具,解决方案,应用安全


cover_image

CVE-2026-27944:Nginx UI 信息泄露漏洞分析

信息安全新动态

2026年6月8日 08:59 江西

在小说阅读器读本章

去阅读

01

背景:Nginx UI 是什么?

Nginx UI 是一款开源、轻量级的 Nginx 可视化管理工具,提供了配置编辑、站点启停、SSL 证书管理、日志查看等一站式功能,深受运维与个人站长喜爱。其核心架构为 Go + Vue.js,通过 API 与后端交互来操控本机的 Nginx 实例。

正是因为它需要直接读写 Nginx 配置文件、证书目录等高敏感资源,一旦 API 出现鉴权缺陷,后果不堪设想。

02

漏洞发现:一次偶然的路径穿越

在审计 Nginx UI v2.0.8 的 API 路由时,注意到一个被忽视的细节。系统提供配置备份下载的接口/api/backup/download,接受一个 file 参数来指定要下载的备份文件名。相关路由注册代码如下(摘自 router.go):

初看似乎无害,因为DownloadBackup 内部限定了基础目录为/var/lib/nginx-ui/backups,并通过 filepath.Join 拼接路径。问题在于,拼接前并未对 file 参数做任何清理或验证,而 Go 的 filepath.Join不会自动阻止目录穿越(它仅做路径清理)。

关键漏洞代码位于handler/backup.go

攻击者传入file=../../etc/nginx/nginx.conf,filepath.Join并不会检查最终路径是否仍在 basePath 之内,从而导致攻击者可以读取系统中的任意文件。

更致命的是,这个接口没有做任何登录态检查。路由注册时未使用 JWT 中间件,直接暴露在公网或内网的 Nginx UI 实例,任何人都能无限制地发起请求。

03

漏洞复现:仅需一行 curl

在默认安装的 Nginx UI v2.0.8 环境中,我们可以轻松复现:

1.获取主配置文件 nginx.conf

返回结果直接显示完整的 nginx.conf 内容,包含所有反向代理规则、上游服务器地址、限流配置等。

2. 窃取 SSL 私钥

假设 Nginx SSL 证书存储在/etc/nginx/ssl/,私钥文件名为 example.key

攻击者可以直接下载到明文的 RSA 私钥,后果是 HTTPS 通信可被解密,甚至可进行中间人攻击。

3. 读取敏感日志

日志中可能泄漏用户 Cookie、Token、接口参数等敏感数据,用于进一步渗透。

4. 读取 /etc/passwd 或系统配置文件

只要 Nginx UI 进程(通常以 root 或 www-data 用户运行)有读取权限的文件,均可被读取,这已经等价于一个受限的任意文件读取漏洞。

04

漏洞影响评估

受影响版本:Nginx UI <= 2.0.8

不受影响版本:Nginx UI 2.0.9+利用条件:无需认证,仅需能够访问 Nginx UI 的 Web 端口(默认 8080)。

可能泄露的敏感信息包括:

Nginx 完整配置文件(含内部网络拓扑)

SSL 证书私钥及证书文件

Nginx UI 自身的数据库文件(SQLite),内含管理员凭据哈希

访问日志与错误日志,含用户 IP、请求路径、Token 等

系统文件如 /etc/hosts、/etc/resolv.conf 等

此漏洞可直接导致服务器被控制或横向移动,被业内定性为 “灾难级” 信息泄露。

05

修复与缓解建议

官方修复方案

官方在 v2.0.9 中做了两处关键修复:

1.增加鉴权中间件:/api/backup/download 路由加上了 JWT 认证,未登录请求直接返回 401。

2.路径净化:使用 filepath.Clean 后再判断最终路径是否以 basePath 为前缀,如果不是则拒绝访问。修复后的代码片段:

临时缓解措施(无法立即升级时)

在前端 Nginx 反代中,增加如下规则拦截对 /api/backup/download 的直接访问:

严格限制 Nginx UI 管理端口仅允许可信 IP 访问,例如通过防火墙或 Nginx listen 的 allow/deny

检查所有备份文件是否已从公开目录移除,并监控对该端口的异常请求。

引用与参考

https://github.com/0xJacky/nginx-ui/releases/tag/v2.0.9

声明:本文技术细节基于公开信息与安全研究复现,旨在推动修复,请勿用于非法用途。

声明

转载声明:本平台部分公开资料源于互联网,转载是为传递信息和网络分享,不代表平台观点,也不保证真实性、不提供建议。除原创及特别说明外,推送内容来自网络和主流媒体,版权归原作者。若发现侵权,请联系我们,将尽快核实并删除。

网络安全,人人有责

信息安全新动态

微信号丨ThinventS2


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:信息安全新动态 《CVE-2026-27944:Nginx UI 信息泄露漏洞分析》

    评论:0   参与:  0