← 返回信息流
AI 资讯Hacker News·2 小时前

摩托罗拉MR2600路由器被曝严重未认证远程代码执行漏洞

原标题:Unauthenticated RCE in Motorola's MR2600 Router

速览

安全研究人员发现摩托罗拉MR2600路由器存在一个未认证的远程代码执行漏洞。该漏洞允许攻击者无需任何身份验证即可远程执行任意代码,完全控制受影响的设备。受影响用户应尽快更新固件或采取临时缓解措施,以防止设备被入侵。

AI 深度解读

背景

近日,安全研究员披露了摩托罗拉(Motorola)MR2600 路由器中存在一个未经身份验证的远程代码执行(RCE)漏洞。该漏洞源于固件更新流程中的多个安全缺陷,允许攻击者在无需任何认证的情况下上传并刷写恶意固件,从而完全控制设备。MR2600 是一款 Wi-Fi 5 路由器,最后一次固件更新(v1.0.22)发布于 2024 年中,目前已处于生命周期结束(EOL)状态。

核心内容

研究员在分析摩托罗拉 MR2600 路由器的固件更新机制时,发现其存在一系列严重的安全问题。整个攻击流程分为两步:上传恶意固件,然后触发验证与刷写程序。

第一步:上传恶意固件

在路由器固件中,存在一个名为 fwupload.cgi 的端点,通过 POST /WEBCGI1/prog.fcgi?method=/cgi-bin/fwupload.cgi 访问。该接口原本用于管理员手动升级固件。它需要验证上传的文件是否为有效的 SEAMA 镜像,验证方式为检查文件前四个字节是否为 0x27 0x05 0x19 0x56

然而,开发人员在解析 multipart 表单数据时犯了一个关键错误:他们试图验证原始 multipart 数据的前缀是否包含魔数,而不是先提取表单中的文件字段。实际 multipart 请求的开头一定是 ----(如 ------WebKitFormBoundary...),因此合法的请求反而会因为前四个字节不是魔数而失败。

攻击者可以绕过这一限制:只需声明发送 multipart 表单,但实际上直接发送原始固件镜像,不带任何 multipart 边界。这样,魔数检查就会直接作用于文件内容,从而通过验证。

此外,该接口本应检查用户是否已认证,但认证检查是在固件上传并写入 /tmp/firmware.img 之后才进行的,且即使检查失败,也不会删除已上传的文件。因此,攻击者可以在未认证的情况下上传任意固件到路由器临时目录。

第二步:刷写固件

要触发刷写,需要发送以下 SOAP 请求:

POST /WEBCGI1/ HTTP/1.1
Content-Type: text/xml; charset=utf-8
SOAPAction: "http://purenetworks.com/WEBCGI1/LoadFirmwareValidation"

该请求调用路由器内部的 LoadFirmwareValidation 函数,该函数会验证 /tmp/firmware.img 是否为有效的 SEAMA 镜像,并检查 CRC32 校验和以确保文件完整性。由于摩托罗拉并未对固件进行加密签名,任何人都可以生成合法的固件镜像。

验证通过后,路由器会执行 mtd_write -r -w write /tmp/firmware.img Kernel & 命令,将新固件刷写到 Kernel 分区,然后自动重启(-r 标志)。

认证绕过漏洞

该 API 端点同样要求认证,但认证检查的实现存在缺陷。代码会先检查 URI 是否包含白名单或黑名单中的路径。在内部字典中,只有 /WEBCGI1/ 被列为黑名单条目。但检查逻辑采用了不一致的比较方式:对于白名单路径使用子串匹配,对于黑名单路径 /WEBCGI1/ 则要求 URI 完全匹配。

攻击者可以利用这一差异:在请求 URI 末尾附加一个白名单字符串作为参数,例如 POST /WEBCGI1/?Login.html。此时,URI 中包含 Login.html,通过白名单检查;但 URI 不等于 /WEBCGI1/,因此黑名单检查不生效,认证被完全绕过。

完整的攻击流程

  1. 调用 fwupload.cgi 上传一个恶意固件镜像(未经认证)。
  2. 利用认证绕过调用 LoadFirmwareValidation 触发刷写。
  3. SEAMA 验证和 CRC32 检查通过,固件被刷入。
  4. 路由器自动重启,运行被感染的固件。

可利用性

该漏洞至少可以被局域网(LAN)内的任意攻击者利用,无需任何认证。进一步检查 lighttpd 和防火墙配置后,研究员发现如果开启了远程管理功能,该漏洞也可以从远程触发。截至报告发布时,Shodan 显示有 41 台 MR2600 路由器暴露在公网上且开启了远程管理,这意味着这些设备可直接从互联网被攻击。

先前发现与上报情况

在调查过程中,研究员发现 Exodus Intelligence 此前已针对同一型号路由器发现了两个漏洞:一个命令注入漏洞和一个认证绕过漏洞(可能用于配合命令注入)。然而,Exodus 将其漏洞细节隐藏在付费墙后,研究员无法验证其认证绕过方式是否与本次发现的相同。

关于上报,研究员联系了摩托罗拉移动(Motorola Mobility),对方表示只处理手机相关的安全事件,建议联系摩托罗拉解决方案(Motorola Solutions)。随后研究员联系了摩托罗拉解决方案,对方却回复称 MR2600 是摩托罗拉移动的产品,并关闭了提交。由于两个部门均不愿认领该产品,且该路由器原本的自动更新机制(通过 zoom.com 的固件查询接口)已失效(该域名当前属于一家电信 SaaS 公司,不再维护路由器),因此该漏洞目前无法通过官方渠道修复。

关键要点

  • 漏洞类型:未经身份验证的远程代码执行(RCE),结合了固件上传逻辑缺陷和认证绕过。
  • 受影响设备:摩托罗拉 MR2600 路由器(Wi-Fi 5,最后固件 v1.0.22,已 EOL)。
  • 攻击前提:攻击者须位于 LAN 内;若开启远程管理,也可从公网利用(Shodan 显示至少 41 台暴露)。
  • 技术细节
    • 固件上传接口的 multipart 解析错误,导致攻击者可直接发送原始固件绕过魔数验证。
    • 认证检查在文件上传后才执行,且不删除已上传文件。
    • 刷写接口的认证绕过:URI 白名单/黑名单比较逻辑不一致,通过添加参数 ?Login.html 即可绕过。
    • 固件无需签名,攻击者可自行生成合法的 SEAMA 镜像。
  • 影响范围:攻击者可完全控制路由器,刷写任意固件,可能导致网络流量劫持、窃听、横向移动等。
  • 上报受阻:摩托罗拉两个部门互相推诿,均不承认该产品归属,且自动更新机制已失效,用户无法获得官方补丁。
  • 先前研究:Exodus Intelligence 曾发现类似漏洞,但细节被付费隐藏。

意义与影响

该漏洞揭示了物联网设备生命周期管理中的典型问题:设备在达到 EOL 后,厂商不再提供安全更新,自动更新机制也可能因第三方服务变更而失效。当安全研究人员发现漏洞时,上报流程可能因公司内部产品线划分不清而陷入僵局,导致漏洞被公开后用户仍无法获得修复。

从技术角度看,该漏洞的认证绕过方式非常典型——比较逻辑不一致(子串匹配 vs 精确匹配)是一种常见的安全编码错误,值得开发者警惕。同时,固件更新流程中未对固件进行加密签名,使得攻击者能够轻易伪造合法镜像,这是许多嵌入式设备的安全短板。

对于仍在使用的 MR2600 路由器用户,最直接的缓解措施是:禁用远程管理功能,并尽量将路由器放置在可信网络边界内。但由于该设备已无官方支持,彻底的安全方案是更换为仍在维护的路由器产品。此外,该案例再次提醒行业,IoT 设备的安全责任不应随产品寿命终结而终止,厂商应建立清晰的 EOL 安全响应机制,并确保固件签名和自动更新通道的持续可用性。

查看原文 →mrbruh.com