(9.1分)CVE-2026-94098:Netcore路由器固件升级接口命令注入

admin 2026-09-23 05:37:34 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 本文披露NetcoreNBR200V2路由器固件升级接口存在CVE-2026-94098命令注入漏洞,评分9.1,PoC已公开。根因是CGI脚本urldecode与eval组合过滤黑名单遗漏换行符%0A,注入点在固件校验前,无需认证即可远程执行命令。厂商无回应无补丁,建议立即将管理口限制内网访问、封禁公网暴露,关注固件更新或更换设备。 综合评分: 85 文章分类: 漏洞分析,红队,渗透测试,安全工具


(9.1分)CVE-2026-94098:Netcore 路由器固件升级接口命令注入

红队安全圈 红队安全圈

红队安全圈

2026年9月21日 20:00 重庆

在小说阅读器读本章

去阅读

在公众号小说中沉浸阅读

Netcore NBR200V2 企业路由器固件升级接口命令注入,评分 9.1,利用代码已公开,且注入点在固件校验逻辑之前——黑名单过滤漏了换行符这一个字符。

01  漏洞速览

漏洞编号CVE-2026-94098

关联漏洞CVE-2026-94099

影响产品Netcore NBR200V2

固件版本V1.3.241127.071246

漏洞类型OS 命令注入

危害等级9.1(Critical)

利用状态PoC 已公开

02  漏洞成因

出问题的点在固件的 /www/cgi-bin/upgrade 脚本(CVE-2026-94099 则是 restore.cgi,原理一样)。这类嵌入式设备的 CGI 通常就是 shell 脚本,脚本第一步先把攻击者可控的 QUERY_STRING 做 URL 解码:

QUERY_STRING=`urldecode \

  “$QUERY_STRING”`

解码函数并不是简单的 urldecode,它先删掉一批 shell 元字符,再把 %xx 序列通过 printf 转成实际字符:

str=${str//[“‘`|\<>@

  ?*!();,.\$\^]/}

黑名单过滤一批元字符

str=${str//%/\x}

str=printf "$str"

注意这个黑名单:引号、反引号、管道、分号、括号、美元符全删了,看起来防得很全。但换行符 %0A 不在黑名单里,解码后会变成字面意义上的换行。而 shell 里换行就是命令分隔符。

解码后的字符串随后按 key=val 拆分,直接丢进 eval:

while [ true ]; do

  param=${QUERY_STRING%%&*}

  QUERY_STRING=

    ${QUERY_STRING#*&}

  val=${param#*=}

  key=${param%=*}

  eval “${key}=’${val}'”

done

eval 拿到的 key 里如果带换行,就会被当成多行 shell 程序执行。开发者做了字符过滤,但恰恰漏了最致命的那个字符——整个漏洞的根因就在这。

另一个关键点:注入发生在升级文件校验之前,后面那套依赖权限的校验逻辑根本轮不到执行。所以攻击不需要任何会话或认证前提。

03  影响范围

受影响:Netcore NBR200V2,固件 V1.3.241127.071246(其他版本未确认,建议一律按受影响处理)。

已修复:厂商在披露前被提前告知,至今没有任何回应,没有补丁,没有修复版本。

04  利用分析

PoC 已经公开,原理验证非常直接。以触发设备重启为例:

POST /cgi-bin/upgrade

  ?reboot%0Afoo=bar HTTP/1.1

Host:

解码后 key 变成两行:

reboot

foo

eval 执行第一行 reboot,设备直接重启。把 reboot 换成任意命令就是完整 RCE——wget 拉脚本、busybox 反弹 shell,取决于设备上有什么工具。

restore.cgi 的 CVE-2026-94099 评分更高(9.9,PR:L),利用链同理:QUERY_STRING 注入换行符,eval 执行多行命令。

05  检测与排查

确认设备型号和固件版本:登录管理界面查看,或探测 /cgi-bin/upgrade 是否存在。NBR200V2 且固件为 V1.3.241127.071246 即受影响。也可以发一个无害探测请求看设备是否重启(注意这会造成短暂断网,生产环境慎用):

curl -X POST \

  “http:///cgi-bin/

   upgrade?reboot%0Afoo=bar”

06  修复建议

厂商无回应,目前没有官方补丁。缓解措施:

  1. 不要把 NBR200V2 管理口暴露到公网,防火墙封掉 80/443 的外部访问;

  2. 管理界面限制到指定运维 IP 段;

  3. 关注厂商后续固件更新,出补丁立刻升级;

  4. 有条件的话直接换设备,厂商失联的洞等于永远不修。

07  实战技巧

红队视角这批洞价值不小:

  1. 企业路由器的 /cgi-bin/ 目录值得主动摸一遍,nmap + http-enum 或者直接 curl 常见路径(upgrade、restore、backup)可以快速枚举;

  2. 遇到嵌入式 shell CGI,先看它有没有 urldecode + eval 的组合,黑名单过滤十有八九漏换行或 %0d,这是嵌入式设备命令注入的高频模式;

  3. 同厂商往往一个接口出问题全线都有——Netcore 这两个洞一个 upgrade 一个 restore,写成 payload 模板批量过一遍同型号其他 CGI 是常规操作;

  4. 利用前先确认目标是否暴露公网:Censys/FOFA 搜 NBR200V2 的指纹,能快速圈定暴露面。

08  POC 链接

https://app.notion.com/p/

Netcore-NBR200V2-Vul-6-

39f797159f1580259aa3cc1d0f512fde

https://vuldb.com/?id.408027

说明:第一链接为披露者完整分析(含利用链),第二链接为漏洞库条目。长按可逐行复制。

如果文章对您有收获,欢迎关注、点赞、推荐、转发。

— END —


免责声明:

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

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

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

本文转载自:红队安全圈 红队安全圈 红队安全圈《(9.1分)CVE-2026-94098:Netcore 路由器固件升级接口命令注入》

评论:0   参与:  0