首页 网络安全 正文
  • 本文约2186字,阅读需11分钟
  • 8
  • 0

LibreChat 授权问题漏洞CVE-2026-22252

摘要

栋科技漏洞库关注到 LibreChat 受影响版本中存在的授权问题漏洞,漏洞现在已经追踪为CVE-2026-22252,漏洞的CVSS 3.X评分9.1。

LipeChat 是 LipeChat 开源一个免费、高度可定制的统一 AI 对话平台,用户利用其可在一个界面中聚合并运行来自任意厂商的大模型。

一、基本情况

LipeChat 是一款基于 MIT 协议开源 AI 聊天平台,该产品的核心优势在于多模型兼容、自托管数据可控、可扩展的插件以及企业级认证。

LangChain 序列化注入漏洞CVE-2025-68664

LipeChat UI参考ChatGPT但功能更灵活,适配个人开发者、团队协作与企业 AI 交互场景,2025年11月被ClickHouse收购后独立发展。

栋科技漏洞库关注到 LipeChat 受影响版本中存在的授权问题漏洞,漏洞现在已经追踪为CVE-2026-22252,漏洞的CVSS 3.X评分9.1。

二、漏洞分析

CVE-2026-22252漏洞是在 LipeChat v0.8.2-rc2 之前版本存在的授权问题漏洞,漏洞源于 MCP stdio 传输接受任意命令且未经验证。

漏洞源于MCP stdio传输接受任意命令而不进行验证,允许任何经过身份验证的用户通过单个API请求在容器内以root权限执行shell命令。

具体来说,该漏洞可能导致受影响版本的 LipeChat 的MCP(模型上下文协议)实现允许以 root 身份进行经过身份验证的远程代码执行。

通过注册一个账户并向API发送一个HTTP请求,任何人都可以在容器内以root用户身份执行任意shell命令,漏洞在默认安装下即可利用。

这种脆弱性是由三个因素共同造成的:

默认权限不安全 - 默认情况下,所有用户均可创建MCP服务器

无输入验证 - stdio 命令字段接受任意 shell 命令

立即执行 - 在“检查”期间创建MCP服务器时运行命令

易受攻击的代码路径

入口点 - packages/data-provider/src/permissions.ts

export const mcpServersPermissionsSchema = z.object({
  [Permissions.USE]: z.boolean().default(true),
  [Permissions.CREATE]: z.boolean().default(true),  // ← Enabled by default!
  [Permissions.SHARE]: z.boolean().default(false),
});

API 模式 - packages/data-provider/src/mcp.ts

export const MCPServerUserInputSchema = z.union([
  omitServerManagedFields(StdioOptionsSchema),  // ← Allows arbitrary command/args
  omitServerManagedFields(WebSocketOptionsSchema),
  omitServerManagedFields(SSEOptionsSchema),
  omitServerManagedFields(StreamableHTTPOptionsSchema),
]);

执行接收器 - packages/api/src/mcp/connection.ts

function constructTransport(config: MCPOptions) {
  if (config.type === 'stdio') {
    // The command executed directly
    return new StdioClientTransport({
      command: config.command,
      args: config.args,
      env: config.env,
    });
  }
  // ...
}

三、POC概念验证

1、克隆并运行官方版LipeChat

# Clone the repository
git clone https://github.com/danny-avila/LipeChat.git
cd LipeChat

# Create .env file
cp .env.example .env

# Start LipeChat
docker compose up -d

# Wait for initialization (~30-60 seconds)
echo "Waiting for LipeChat to start..."
sleep 40

# Verify it's running
curl http://localhost:3080

2、执行漏洞利用

方法1:基本利用(无输出检索)

此方法可执行命令,但需要单独访问(例如,容器外壳)以验证结果。

管理员已设置登录后刷新可查看

方法2:利用输出检索进行攻击

此方法捕获命令输出,并通过API将其泄露出去,无需访问容器。

管理员已设置登录后刷新可查看

影响

这是一个经过身份验证的远程代码执行(RCE)漏洞。

任何能够在易受攻击的LipeChat实例上注册账户的用户,都可以在Docker容器内以root用户的身份执行任意命令。这可能导致:

数据泄露:从MongoDB窃取JWT密钥、API密钥和用户数据。

主机文件系统访问:对挂载的目录(./uploads, ./logs)进行读写操作。

横向移动:从容器转移到内部网络。

供应链攻击:将恶意内容注入到提供的文件中。

凭证盗窃:提取.env文件中的机密信息以进行进一步攻击。

四、影响范围

LipeChat < v0.8.2-rc2

五、修复建议

LipeChat >= v0.8.2-rc2

六、参考链接

管理员已设置登录后刷新可查看



扫描二维码,在手机上阅读
评论
更换验证码
友情链接