CVE-2026-22218CVE-2026-22218是存在于Chainlit应用程序中的一个严重安全漏洞。该漏洞影响2.9.4版本之前的所有Chainlit版本,允许经过低权限认证的远程攻击者读取服务器上任意可读文件。漏洞的根本原因在于Chainlit的/project/element更新流程中存在路径验证缺陷,攻击者可以通过构造带有用户控制路径值的自定义Element对象,诱使服务器将指定路径的文件内容复制到攻击者的会话目录中。随后,攻击者可以利用生成的chainlitKey标识符通过/project/file/<chainlitKey>接口直接访问并下载这些文件内容。此漏洞的危险性在于它不需要任何用户交互,攻击者只需拥有基本的账户认证即可实施攻击。由于Chainlit通常以较高权限运行,攻击者可能利用此漏洞读取敏感配置文件、凭据文件、源代码、日志文件,甚至可能获取SSH密钥或其他认证凭证,从而进一步扩大攻击面。该漏洞的机密性影响为高,CVSS评分达到6.5,属于中等严重程度。
漏洞存在于Chainlit应用程序的Element更新处理逻辑中。当用户通过/project/element端点更新元素时,系统允许客户端指定一个文件路径值。问题在于服务器端缺乏对用户提供的路径进行充分的验证和限制,导致攻击者可以指定任意系统路径。攻击流程如下:首先,攻击者使用低权限账户登录Chainlit应用;然后,构造一个恶意的Element对象,其中包含一个指向敏感文件的路径值(如/etc/passwd或应用的配置文件);服务器在处理该请求时,会将指定路径的文件内容复制到攻击者的会话存储目录中;复制操作完成后,系统会生成一个唯一的chainlitKey标识符;最后,攻击者可以通过/project/file/<chainlitKey>接口使用该标识符检索文件内容。由于Chainlit服务进程通常具有读取系统上大多数文件的权限,攻击者可以访问任意可读文件。此漏洞的利用不需要任何特殊权限或复杂的攻击准备,但攻击成功的前提是目标服务器上存在可被读取的目标文件。