最近,一款名为PCPcat的新型恶意软件利用Next.js框架中的关键安全缺陷,在短时间内成功入侵了数以万计的服务器。该恶意软件利用了编号为CVE-2025-29927和CVE-2025-66478的两个漏洞,它们存在于Next.js的部署环境中,允许攻击者无需通过身份验证,就能在目标系统上远程执行任意代码。
攻击概况
PCPcat的攻击效率惊人,它通过精准利用Next.js与React框架中的漏洞,在短短48小时内就攻破了超过5.9万台服务器。该恶意软件成功的关键在于利用了上述两个高危漏洞,这些漏洞的存在使得系统可以直接执行未经授权的远程指令。

攻击技术分析
攻击者采用了原型污染与命令注入相结合的技术手段,在存在漏洞的服务器上直接运行恶意指令。数据显示,此次攻击的成功率达到64.6%,对于此类利用漏洞的操作而言,这个数字高得异乎寻常。PCPcat采取了大范围的扫描策略,其目标锁定在公网上暴露的Next.js应用,每批会测试2000个目标,大约每隔30到60分钟就会发起一轮新的扫描。
该恶意软件的核心指挥中枢位于新加坡,主要通过三个端口进行运作:
- 端口666:作为恶意负载的分发中心。
- 端口888:用于处理反向隧道连接。
- 端口5656:运行主控服务器,负责分配目标并向中继服务器收集窃取的数据。
攻击流程
安全分析师通过部署Docker蜜罐进行监控后发现,该恶意软件在攻击前,会先使用简单的命令测试目标服务器是否存在可利用的漏洞,在确认成功后才发起完整的攻击链。一旦发现易受攻击的服务器,攻击脚本便会立即提取服务器上的环境变量文件、云端凭证、SSH密钥和命令历史记录。这些被窃取的信息会通过一个无需身份验证的简单HTTP请求,直接发送回攻击者控制的后台服务器。
在获取凭证后,恶意软件会尝试安装额外的工具以维持长期的访问权限,例如在被感染的服务器上下载并设置GOST代理软件和FRP反向隧道工具。这些工具会创建隐蔽的通路,即使初始的漏洞被修复,攻击者仍然能够通过这些后门持续访问受感染的系统。
漏洞利用机制
攻击的核心在于向存在漏洞的Next.js服务器发送特制的JSON载荷。该载荷通过操纵JavaScript的原型链,将恶意命令注入到子进程执行函数中。其恶意载荷结构如下:
payload = {
"then": "q:__proto__:then",
"status": "resolved_model",
"_response": {
"_prefix": "var res=process.mainModule.require(‘child_process’)
.execSync(‘COMMAND_HERE’).toString();"
}
}
该载荷会强制服务器执行攻击者指定的任意命令,执行结果会通过特定格式的重定向头发回,使恶意软件能在不立即引起怀疑的情况下悄然提取数据。
持久化与检测
为了实现长期驻留,恶意软件在系统中创建了多个服务,这些服务在停止或服务器重启时会自动重启,持续运行代理和扫描工具,确保受感染的服务器始终处于僵尸网络中。其安装过程发生在系统的多个位置,以确保即使在安全清理工作中,至少有一个副本可以存活下来。
网络管理员可以通过以下方式检测此类攻击活动:
- 监控连接:监控与命令控制服务器IP地址67.217.57.240在端口666、888和5656上的异常连接。
- 检查服务:在系统中查找名称包含“pcpcat”的systemd服务。
- 审查流量:检查出站流量中是否携带包含环境变量或凭证信息的JSON数据。
