在移动安全框架 (MobSF) 中发现了一个严重缺陷,允许经过身份验证的攻击者利用不正确的路径验证来上传和执行恶意文件。
该漏洞存在于 4.4.0 版本中并在 4.4.1 中进行了修补,强调了在处理用户提供的文件路径和存档时严格清理的重要性。
Key Takeaways 1. MobSF v4.4.0 allowed attackers to exploit file path flaws to access sensitive files. 2. These vulnerabilities risked data leaks and system corruption. 3. Update and secure the platform.
目录遍历漏洞 (CVE-2025-58161)
第一个问题存在于 MobSF/views/home.py 中实现的下载处理程序中。该函数天真地剥离了 /download/ 前缀,并将剩余的字符串连接到配置的设置。DWD_DIR使用 Python 的路径 API:
在这里,is_safe_path() 使用 os.path.commonprefix() 来验证解析的check_path是否以 safe_root 开头。
但是,由于 commonprefix 比较原始字符串,因此名为 /home/mobsf/ 的同级目录。MobSF/downloads_bak 被错误地视为 /home/mobsf/ 内部。MobSF/下载。通过发出这样的请求:
攻击者可以从同级目录中检索具有允许扩展名的任何文件。
此目录遍历漏洞 (CVE-2025-58161) 的严重性等级为低 (CVSS 3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:N),并影响所有使用 mobsf 软件包 4.4.0 版的安装。
绝对路径滑移漏洞
第二个更严重的漏洞 (CVE-2025-58162) 影响了 mobsf/StaticAnalyzer/views/common/shared_func.py 中的 AR 存档提取逻辑。
ar_extract() 函数解码每个存档成员名称并仅过滤相对路径遍历(..、%2e%2e 等),忽略绝对文件名:
当 filtered 以 / 开头时,Path(dst) / filtered 解析为绝对路径。攻击者控制的 .a 存档,其中包含类似 /home/mobsf/ 的成员。MobSF/db.sqlite3 会导致覆盖预期static_objects目录之外的数据库文件。
演示表明,上传精心制作的存档会触发服务器错误并损坏 SQLite 数据库,从而导致扫描故障和潜在的 Stored XSS,通过篡改静态模板。
此中等严重性缺陷 (CVSS 3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:N/I:H/A:H) 允许在 MobSF 进程的权限下进行任意文件写入,从而存在分析结果失真、完整性受损和服务中断的风险。
| CVE 编号 | 标题 | CVSS 3.1 分数 | 严厉 |
| CVE-2025-58161 漏洞 | MobSF 下载路线中的路径遍历 | 0 | 低 |
| CVE-2025-58162 漏洞 | 通过 .a 存档提取进行任意文件写入 | 7.4 | 温和 |
缓解
发现这些漏洞的功劳归功于 Vasily Leshchenko (Solar AppSec) 和记者 noname1337h1。
MobSF 4.4.1 中解决了这两个问题。用户应立即升级。建议的修复包括:
- 通过使用 os.path.isabs() 检查规范化输入来拒绝绝对路径。
- 使用 os.path.commonpath() 而不是 commonprefix() 来实施强大的目录边界。
- 确保存档提取始终验证规范化目标路径是否保留在预期根目录下。
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。


评论