哪吒监控面板曝高危漏洞,如何应对与自查?

哪吒监控面板(Nezha Monitoring)是一款开源的一体式服务器监控与运维面板,在华人 IT 圈中非常热门,因其简洁的界面设计、安装的便捷性与易用性而广为流传,相较于 Zabbix / Prometheus + Grafana 等专业 DevOps 监控工具更为亲民。与前两者不同的是,哪吒监控面板所能执行的权限非常高,它可以免密码 / 免 SSH Key 直接通过网页控制面板的后台,一键使用 root 账号登录至被控服务器的 tty,这样的设计下,一旦面板 Web 端被攻破,主控下的所有被控端服务器都能被轻松操控,后果不堪设想。

正因如此高的潜在风险,任何主控端 Web 面板的漏洞都具有极高风险。近日,编号为 CVE-2026-53519 的严重漏洞被披露。该漏洞是一个典型的预认证路径穿越(Pre-auth Path Traversal)漏洞,攻击者无需登录后台,只需发送一个精心构造的 GET 请求,即可实现对整个面板的完全接管。

1. 漏洞核心:前缀混淆与路径穿越

漏洞根源在于主控端处理前端静态资源的 fallbackToFrontend 函数中。为了方便用户访问,开发者实现了一个逻辑:如果请求的 URL 以 /dashboard 开头,则将其视为对管理后台前端资源的请求,并从本地目录读取文件返回。

漏洞版本(< 2.0.13)中相关的代码片段:

if strings.HasPrefix(c.Request.URL.Path, "/dashboard") 
{
    stripPath := strings.TrimPrefix(c.Request.URL.Path, "/dashboard")
    localFilePath := path.Join(singleton.Conf.AdminTemplate, stripPath)
    if checkLocalFileOrFs(c, frontendDist, localFilePath, http.StatusOK) 
    {
        return
    }
}

这段逻辑存在一个致命的疏忽:此处使用 strings.HasPrefix 进行简单的字符串匹配,而不是基于路径段(Path Segment)进行校验。

通常情况下,如果我们尝试使用 /dashboard/../data/config.yaml 来进行路径穿越,Go 标准库的 http.ServeFile 会触发内置的安全拦截机制,直接返回 400 Bad Request。

然而,攻击者可以利用一个巧妙的技巧:将点号紧跟在前缀之后。

当请求路径为 /dashboard../data/config.yaml 时,会发生这些步骤:

  1. 绕过拦截:对于 Web 服务器而言,第一个路径段是 dashboard.. 而不是 dashboard。因为它不包含独立的 .. 片段,因此顺利绕过了 Go 标准库的 URL 拦截。
  2. 前缀匹配:strings.HasPrefix(path, “/dashboard”) 返回 true。
  3. 路径拼接:strings.TrimPrefix 将 /dashboard 部分去除,剩下 ../data/config.yaml。
  4. 最终路径:path.Join(“admin-dist”, “../data/config.yaml”) 经过规范化处理后,指向服务器根目录下的 data/config.yaml。

通过这种方式,攻击者可以绕过所有防御,直接读取主控端运行目录下的任意文件。

2. 攻击链

在此案例中,路径穿越漏洞是整个攻击链的第一环。攻击者可以通过以下步骤实现权限跃迁:

第一步:获得 JWT 密钥

通过请求 /dashboard../data/config.yaml,攻击者可以直接获取该文件的明文内容。其中包含 jwt_secret_key。这是面板用于签署会话 Token 的 HS256 对称加密密钥。

第二步:定位管理员账户

利用漏洞请求 /dashboard../data/sqlite.db 下载整个数据库文件。通过分析 SQLite 数据库中的 users 表,攻击者可以获取管理员的 user_id 以及其他标识信息。

第三步:伪造管理 Token

由于 HS256 是对称加密算法,只要拥有了 jwt_secret_key,任何人都可以自行签署合法的 JWT Token。攻击者可以使用该密钥伪造一个包含管理员 user_id 的 Token,并将其放入 Cookie (nz-jwt) 中发送给服务器。

第四步:接管面板,控制服务器

此时,主控端会认为请求者是合法且经过认证的管理员。因此,攻击者拥有了对面板的完整控制权,可以随意修改配置、添加用户,甚至利用前文提到的 root 登录功能,一键接管所有被控端服务器。

3. 修复与防御

该漏洞在 v2.0.13 版本中已得到修复。官方采取了更为严格的路径校验方案:

  • 强化前缀检查:将匹配条件改为 /dashboard/(强制要求斜杠),避免 dashboard.. 这种混淆攻击。
  • 引入路径清洗:在访问文件系统之前,使用 path.Clean 处理路径,并明确禁止结果中出现 .. 或试图跳出根目录的行为。

对于所有哪吒监控面板的用户,建议立即执行以下操作:

  1. 升级版本:尽快将主控端更新至 v2.0.13 或更高版本。
  2. 检查日志:审计 Web 日志中是否存在包含 /dashboard.. 关键字的异常请求。
  3. 更换密钥:如果你怀疑已被攻击,在升级后请务必修改 jwt_secret_key,因为之前的密钥一旦泄露,即使更新了代码,旧的伪造 Token 在有效期内依然可能有效。

4. 检查服务器是否被注入恶意脚本

即便及时更新或停止了面板,或者服务器的资源占用率与往常一样,仍然不能掉以轻心地认为服务器未被攻破。这里提供两种方式供大家检测。

初步检测

通过运行该脚本,能够探测服务器中是否包含常见的非 ATP 定向攻击脚本特征:

  1. 寻找是否存在名为 kworker 但不在 /sbin/init 下的进程,或占用 CPU 极高的随机字符串进程。
  2. 寻找是否有连接到已知矿池 IP 或非常规端口的外出连接。
  3. 寻找包含 curl … | sh 或 wget … -O- | bash 的定时任务,这是典型的后门植入方式。
  4. 对比已知公钥,检查是否有不明条目。
  5. 检查 /tmp 下是否存在具有执行权限的二进制文件。
  6. 查看是否后台执行了下载脚本的操作。
echo -e "\n\033[1;32m=== [VPS SECURITY CHECK REPORT] ===\033[0m"; \
echo -e "\n\033[1;34m[1. Top CPU Processes]\033[0m"; ps aux --sort=-%cpu | head -n 15; \
echo -e "\n\033[1;34m[2. Network Connections]\033[0m"; ss -tunlp || netstat -tunlp; \
echo -e "\n\033[1;34m[3. User CronJobs]\033[0m"; crontab -l 2>/dev/null || echo "No user crontab"; \
echo -e "\n\033[1;34m[4. System Crontab]\033[0m"; cat /etc/crontab 2>/dev/null; \
echo -e "\n\033[1;34m[5. SSH Authorized Keys]\033[0m"; cat ~/.ssh/authorized_keys 2>/dev/null || echo "No authorized_keys found"; \
echo -e "\n\033[1;34m[6. Suspicious Tmp Files]\033[0m"; ls -la /tmp /var/tmp | grep -v '^total' | head -n 20; \
echo -e "\n\033[1;34m[7. Recent Bash History]\033[0m"; tail -n 50 ~/.bash_history 2>/dev/null || echo "No history found"; \
echo -e "\n\033[1;32m=== [END OF REPORT] ===\033[0m"

针对此次哪吒面板漏洞的定向检测

该版本收录自各大论坛热心网友的发帖,该脚本只读、只报警、不会进行删改操作。为了让全球各地的网友都能访问到这个脚本,我将其放置于本人的全球 CDN 中,直接运行下列命令即可。

需要注意的是,由于需要检测是否有被注入的 SSH Key 等操作,务必使用含 root 权限的账户运行下列脚本。

版本1:

curl -s https://global.ecdn.ltd/enblog/public_dl/20260618/nezha_inspector.sh | sudo bash

版本2:

curl -s https://global.ecdn.ltd/enblog/public_dl/20260618/nezha_inspector_v2.sh | sudo bash
本站所有内容,未经授权严禁转载。部分媒体文件使用暗水印标记,请注意。
Unauthorized reproduction of any content is strictly prohibited. Certain media files are embedded with invisible watermarks. Users are advised to exercise caution.

EnsonYan

文章作者

目前正在加拿大攻读游戏设计相关学位。IT / 摄影 / 汽车爱好者

发表回复

textsms
account_circle
email

哪吒监控面板曝高危漏洞,如何应对与自查?
哪吒监控面板(Nezha Monitoring)是一款开源的一体式服务器监控与运维面板,在华人 IT 圈中非常热门,因其简洁的界面设计、安装的便捷性与易用性而广为流传,相较于 Zabbix / Prometheus…
扫描二维码继续阅读
2026-06-19