Nginx Proxy Manager漏洞CVE-2026-40519
Nginx Proxy Manager是一款开源、可视化 Nginx 反向代理管理工具,基于 Docker 容器化部署,用户无需再手动编写 Nginx 配置文件。
一、基本情况
Nginx Proxy Manager致力于零代码管理 Nginx,封装复杂配置逻辑,该产品适合个人建站、家庭网络服务暴露以及小型企业代理场景。

Nginx Proxy Manager可以直接通过 Web 图形界面即可快速配置反向代理、SSL 证书及访问控制等功能,能大幅降低 Nginx 使用门槛。
栋科技漏洞库关注到Nginx Proxy Manager 2.9.14至2.15.1版本的认证后远程代码执行,追踪为CVE-2026-40519,CVSS 4.0评分7.7。
二、漏洞分析
CVE-2026-40519是 Nginx Proxy Manager 中的认证后远程代码执行漏洞,位于 backend/setup.js 文件的 setupCertbotPlugins() 函数。
拥有证书管理权限的攻击者可以通过用户可控字段dns_provider_credentials植入恶意载荷,由于没有经过合规转义直接拼接至命令行。
该用户可控字段的值未经过滤与转义,因此直接拼接进 Shell 命令并通过 child_process.exec() 执行,后端重启时注入的命令便会运行。
这意味着拥有证书管理权限的攻击者可注入任意系统命令,后端重启时命令将会执行;在容器部署环境中,进程通常以 root 权限运行。
1、根本原因
转义顺序不正确:
const escapedCredentials = certificate.meta.dns_provider_credentials
.replaceAll("'", "\\'")
.replaceAll("\\", "\\\\");
反斜杠在单引号后转义,破坏保护并允许注入。
2、示例输入:
x' ; cmd ; #
命令执行结果:
echo 'x\\' ; cmd ; #'
3、漏洞影响:
完整的RCE、访问机密、TLS密钥、数据库、服务中断和持久性
三、PC概念验证
1、将有效负载存储在dns_provider_credentials中(数据库或竞争条件)
2、重新启动后端
3、有效载荷通过exec()中的/bin/sh-c执行
在Docker中是可靠的,因为/etc/letsencrypt/recredentials/不是持久化的。
有效载荷示例:
管理员已设置登录后刷新可查看四、影响范围
v2.9.14 v2.9.15 v2.9.16 v2.9.17 v2.9.18 v2.9.19 v2.9.20
v2.9.21 v2.9.22
v2.10.0 v2.10.1 v2.10.2 v2.10.3 v2.10.4
v2.11.0 v2.11.1 v2.11.2 v2.11.3
v2.12.0 v2.12.1 v2.12.2 v2.12.3 v2.12.4 v2.12.5 v2.12.6
v2.13.0 v2.13.1 v2.13.2 v2.13.3 v2.13.4 v2.13.5 v2.13.6 v2.13.7
v2.14.0 (latest, still vulnerable)
五、修复建议
Nginx Proxy Manager ≥ 2.15.2
六、参考链接
管理员已设置登录后刷新可查看