CVE-2026-33324SQLBot是一个基于大语言模型和RAG的智能Text-to-SQL系统。在1.7.0及更早版本中,其Text2SQL聊天接口存在严重的提示词注入漏洞。由于系统未对用户输入的问题参数进行过滤或转义,直接将其拼接入LLM提示词,且对生成的SQL缺乏验证,导致经过身份认证的攻击者可操纵模型生成并执行任意SQL语句。在特定环境下(如PostgreSQL),这可进一步导致远程代码执行。
该漏洞的根源在于SQLBot对大语言模型(LLM)输入和输出的处理缺乏严格的安全校验。在Text2SQL流程中,用户输入的“问题”参数被直接拼接到发送给LLM的提示词中,未经过滤或转义。攻击者可以利用这一机制进行提示词注入攻击,通过构造特定的恶意指令,诱导LLM忽略原本的查询约束,转而输出攻击者指定的恶意SQL语句。系统随后从LLM的响应中提取SQL代码,并在未进行任何验证或净化的情况下直接在数据库中执行。当SQLBot连接的底层数据库为PostgreSQL时,攻击者可以构造包含COPY FROM PROGRAM指令的SQL语句,利用PostgreSQL的特定功能执行系统命令,从而实现从SQL漏洞到远程代码执行(RCE)的跨越。该漏洞需要攻击者具备低权限的用户身份,且无需用户交互即可通过网络利用。