# Lobe Chat 知识库文件IDOR漏洞
## 概述
`knowledgeBase.removeFilesFromKnowledgeBase` tRPC 端点在认证用户删除知识库文件时未验证用户对知识库的所有权,导致越权删除漏洞。
## 影响版本
LobeChat < 2.0.0-next.193
## 细节
该漏洞存在于 `knowledgeBase.removeFilesFromKnowledgeBase` tRPC 接口。数据库查询中用于限制用户权限的 `userId` 过滤条件被注释,导致任何认证用户只需知晓目标知识库 ID 和文件 ID,即可删除任意知识库中的文件。
## 影响
攻击者可删除其他用户知识库中的文件,造成数据破坏。实际利用需知晓目标 KB ID 和文件 ID,虽然这些 ID 随机且难以枚举,但可能通过共享链接、日志、Referrer 头等途径泄漏。该缺陷属于严重的权限校验缺失。
是否为 Web 类漏洞: 未知
判断理由:
| # | POC 描述 | 源链接 | 神龙链接 |
|---|
标题: IDOR in Knowledge Base File Removal Allows Cross User File Deletion · Advisory · lobehub/lobe-chat · GitHub -- 🔗来源链接
标签:x_refsource_CONFIRM
神龙速读:
### 漏洞关键信息
#### 漏洞概述
- **标题**: IDOR in Knowledge Base File Removal Allows Cross User File Deletion
- **ID**: GHSA-j7xp-4mg9-x28r
- **CVE ID**: CVE-2026-23522
- **严重性**: 低, 3.7/10
#### 影响版本与修复
- **受影响版本**: <= v2.0.0-next.192
- **已修复版本**: v2.0.0-next.193
#### 漏洞详情
- **摘要**: `knowledgeBase.removeFilesFromKnowledgeBase` tRPC 端点允许经过身份验证的用户删除任何知识库中的文件,而不进行所有权验证。
- **详细信息**: 数据库查询中的 `userId` 过滤器被注释掉,使攻击者在知道目标知识库ID和文件ID的情况下,能够删除其他用户的KB文件。
#### 证明概念 (PoC)
```bash
ATTACKER_TOKEN="xx"
VICTIM_KB="kb_tuLBfskdDN1r"
VICTIM_FILE="file_v5wCNLqSaoPp"
curl -X POST "https://localhost/trpc/lambda/knowledgeBase.removeFilesFromKnowledgeBase?batch=1" -H "Content-Type: application/json" -d "{...}"
```
#### 影响
- 攻击者可以删除任何用户的KB文件,导致RAG/AI功能失效和重要文档、专有数据等丢失。
- 实际利用需要知道目标KB和文件ID,但可能存在泄漏风险。
#### 弱点
- CWE-284
- CWE-639
- CWE-862
- CWE-915
#### 报告人
- DenizParlak
标题: 🐛 fix(database): add userId authorization check in removeFilesFromKno… · lobehub/lobe-chat@2c1762b · GitHub -- 🔗来源链接
标签:x_refsource_MISC
神龙速读:
从这个GitHub提交的截图中,可以提取出以下关键信息关于漏洞及其修复:
- **漏洞类型**:文件上传功能中的安全漏洞(GHSA-wrrr-8jcv-wjf5)。该漏洞使得用户能够通过操纵文件大小参数,绕过上传文件大小的配额限制,导致潜在的安全风险。
- **修复措施**:
- **数据库授权检查增强**:在从知识库中移除文件时,添加了`userId`授权检查,确保只有具有足够权限的用户才能删除文件。
- **S3文件大小验证**:对从S3实例获取的文件大小进行验证,不再依赖客户端提供的文件大小参数,以确认上传请求的完整性。
- **引入新方法**:在S3模块中引入了`getFileMetadata`方法,利用`HeadObjectCommand`从S3直接获取文件元数据,包括文件的实际大小和内容类型,用以替代先前直接依赖客户端输入的方法。
- **接口与实现更新**:对`FileServiceImpl`接口和相关实现进行了更新,以适应新的文件元数据获取逻辑。
- **测试用例**:为新功能添加了全面的测试来确保其正确性和稳定性,测试内容覆盖了文件大小验证、内容类型处理、错误处理等多个方面。
这些变更直接针对原有过程中存在的信任客户端输入的问题,通过直接向S3请求文件元信息验证文件的实际大小和类型,有效防止了用户通过伪造文件参数(如实际大小)绕过上传限制的可能。
暂无评论