IPBUF安全漏洞报告
English
CVE-2026-40315 CVSS 9.8 严重

CVE-2026-40315 PraisonAI SQL注入漏洞

披露日期: 2026-04-14

漏洞信息

漏洞编号
CVE-2026-40315
漏洞类型
SQL注入
CVSS评分
9.8 严重
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
PraisonAI

相关标签

SQL注入PraisonAICVE-2026-40315严重漏洞SQLite

漏洞概述

PraisonAI是一个多代理团队系统。在4.5.133版本之前,其SQLiteConversationStore组件中存在严重的SQL标识符注入漏洞。该漏洞源于table_prefix配置值直接通过f-字符串拼接到SQL查询中,且未经过任何验证或清理。由于SQL标识符无法像参数值那样安全地进行参数化处理,攻击者如果能够控制table_prefix值(例如通过from_yaml或from_dict配置输入),就可以注入任意SQL片段来改变查询结构。成功利用此漏洞可能导致未经授权的数据访问,如读取内部SQLite表,以及通过基于UNION的注入技术篡改查询结果。

技术细节

该漏洞的核心技术原因在于PraisonAI在处理SQLite数据库存储时,对用户可控的配置项缺乏严格的过滤。漏洞触发路径始于config.py中的配置输入(如from_yaml或from_dict方法),经由factory.py的工厂模式处理,最终传递至sqlite.py进行SQL查询构建。在sqlite.py中,table_prefix参数直接使用f-string格式化字符串的方式嵌入SQL语句,而非使用参数化查询。由于SQLite不支持对标识符(如表名、列名)进行参数化绑定,这种字符串拼接方式直接导致了SQL标识符注入。攻击者可以通过构造恶意的table_prefix值,注入如`UNION SELECT * FROM sqlite_master`等SQL片段,从而绕过逻辑限制,读取数据库结构信息,窃取敏感数据,甚至通过UNION查询获取其他表的数据。

攻击链分析

STEP 1
步骤1:准备恶意配置
攻击者构建包含恶意SQL代码的配置文件(如YAML),针对table_prefix字段注入UNION查询或其它SQL片段。
STEP 2
步骤2:提交配置输入
攻击者通过应用程序接口(如from_yaml或from_dict)将恶意配置加载到PraisonAI系统中。
STEP 3
步骤3:传递与实例化
系统处理配置,factory.py接收参数并实例化SQLiteConversationStore,将受污染的table_prefix传递给数据库层。
STEP 4
步骤4:拼接SQL语句
在sqlite.py中,程序使用f-string直接将table_prefix拼接到SQL查询语句中,导致原有查询逻辑被改变。
STEP 5
步骤5:执行攻击
数据库执行被篡改后的SQL语句,攻击者成功利用UNION SELECT读取sqlite_master表等敏感信息,实现数据泄露。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# PoC demonstrates SQL Identifier Injection via table_prefix configuration # Attacker crafts a malicious YAML to inject SQL fragments import yaml malicious_yaml = """ table_prefix: "messages UNION SELECT 1, sql, 1, 1 FROM sqlite_master--" """ config = yaml.safe_load(malicious_yaml) prefix = config['table_prefix'] # Simulated vulnerable code in sqlite.py # query = f"SELECT * FROM {prefix} WHERE user_id = ?" # Resulting Query: # SELECT * FROM messages UNION SELECT 1, sql, 1, 1 FROM sqlite_master-- WHERE user_id = ? # This allows dumping the database schema (sqlite_master table). print(f"Injected table_prefix value: {prefix}")

影响范围

PraisonAI < 4.5.133

防御指南

临时缓解措施
建议用户立即将PraisonAI升级至4.5.133或更高版本以修复此漏洞。如果暂时无法升级,应严格限制配置文件的来源,确保仅加载受信任的YAML或字典配置,并检查配置内容,特别是table_prefix字段,确保其不包含特殊字符或SQL关键字。

参考链接

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