🔴 严重 | CVE-2026-54760 — Langroid is a framework for building large-languag...
🔴 《严重安全漏洞:CVE-2026-54760》
CVSS 评分: 严重(9.3) 状态: Received 发布时间: 2026-07-10
漏洞简介
CVE-2026-54760 是 Langroid 框架中的一个安全漏洞。Langroid 是一个用于构建大型语言模型(LLM)驱动应用的开发框架。该漏洞存在于 SQLChatAgent 组件的 SQL 注入缓解机制中。
在版本 0.65.1 之前,SQLChatAgent 默认设置 allow_dangerous_operations=False,采用了一种组合防护策略:一方面使用基于原始文本的正则表达式黑名单(_DANGEROUS_SQL_PATTERNS)来阻止危险操作,另一方面使用 sqlglot 库对 SQL 语句进行白名单检查,仅允许 SELECT 类型的语句。
然而,该正则黑名单存在绕过问题。黑名单条目针对可调用函数(如 pg_read_file)时,要求函数名后必须紧跟 \s*\((即零个或多个空白字符后跟左括号)。但 PostgreSQL 数据库允许在函数名与左括号之间插入以下内容,从而绕过正则检测:
- 带引号的标识符(quoted identifier)
- 内联注释(inline comment)
- 模式限定(schema qualification)
这些变体形式仍然能被解析为 SELECT 语句,并且可以正常执行相同的 PostgreSQL 函数。这导致原本被前一个 CVE(CVE-2026-25879 / GHSA-pmch-g965-grmr)修复所阻止的 pg_read_file 服务器端文件读取原语(server-side file-read primitive)重新生效。前一个安全公告修复的是缺少 pg_read_file 黑名单条目的问题,而本报告表明,新增的正则表达式仍然可以被绕过。
该漏洞已在版本 0.65.1 中得到修复。
影响范围
- 受影响版本:Langroid 框架版本 0.65.1 之前的所有版本
- 修复版本:Langroid 版本 0.65.1
风险分析
该漏洞属于 SQL 注入(SQL injection) 和 路径遍历(Path Traversal) 类问题(对应 CWE-22 和 CWE-89),CVSS 4.0 评分为 10.0(最高严重级别),攻击向量为网络远程攻击(AV:N),攻击复杂度低(AC:L),无需任何权限(PR:N)和用户交互(UI:N),对机密性、完整性和可用性均造成高影响(VC:H/VI:H/VA:H)。
可能的攻击后果:
- 服务器端文件读取:攻击者可以利用
pg_read_file函数读取 PostgreSQL 服务器上的任意文件,包括配置文件、数据库凭证、应用源代码等敏感信息。 - 数据泄露:通过读取服务器文件,攻击者可能获取数据库连接字符串、密钥、用户数据等,导致大规模数据泄露。
- 权限提升:结合其他漏洞,攻击者可能进一步获得数据库或操作系统的高级权限。
- 持久化攻击:读取到的敏感信息可用于后续更深入的攻击,如横向移动或植入后门。
由于该漏洞可被远程、无需认证地利用,且影响机密性、完整性和可用性,建议所有使用受影响版本的用户立即升级至 0.65.1 或更高版本。
🔍 技术细节
| 字段 | 值 |
|---|---|
| CVE ID | CVE-2026-54760 |
| CVSS 评分 | 9.3 🔴 |
| 严重程度 | 严重 |
| CVSS 向量 | CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X |
| CWE 分类 | CWE-22,CWE-89 |
| 发布时间 | 2026-07-10 |
| 最后更新 | 2026-07-10 |
| 状态 | Received |
| 数据来源 | security-advisories@github.com |