CVE-2026-24055Langfuse是一个开源的大语言模型工程平台。在3.146.0及以下版本中,存在一个严重的授权绕过漏洞。该漏洞位于/api/public/slack/install端点,该端点在启动Slack OAuth流程时直接使用客户端提供的projectId参数,而没有进行任何认证或授权验证。攻击者可以利用这个漏洞将自己的Slack工作区绑定到任意项目,从而可能接收Langfuse提示管理(Prompt Management)中的提示变更信息。攻击者可以替换现有的Prompt Slack Automation集成,或者预先注册一个恶意的Slack集成。虽然后者需要认证用户不知情地配置,但攻击者可以利用UI中显示的工作区和频道指标来迷惑用户。此漏洞已于版本3.147.0中修复。
漏洞根源在于/api/public/slack/install端点的授权机制缺失。具体问题如下:
1. **端点设计缺陷**:/api/public/slack/install端点被设计为公开访问端点,用于Slack OAuth安装流程,但该端点直接接受客户端传递的projectId参数。
2. **缺少认证验证**:端点没有验证请求者是否有权将Slack工作区绑定到指定的projectId。任何未认证的用户都可以指定任意项目ID。
3. **状态保持问题**:projectId在整个OAuth流程中被保留,callback处理时直接使用这个未验证的projectId来存储安装信息。
4. **利用方式**:攻击者构造恶意请求,指定目标项目的projectId,完成OAuth授权后,攻击者的Slack工作区就被绑定到了目标项目,从而可以:
- 接收该项目的prompt变更通知
- 可能获取敏感的prompt内容
- 篡改或替换现有的Slack集成配置
5. **影响范围**:由于Langfuse是LLM工程平台,prompt中可能包含API密钥、提示词模板、业务逻辑等敏感信息,泄露后可能导致进一步的安全风险。