CVE-2026-33677Vikunja是一个开源的自托管任务管理平台。在2.2.1版本之前,其API接口`GET /api/v1/projects/:project/webhooks`存在安全缺陷。当拥有项目读取权限的用户调用该接口时,系统会以明文形式返回Webhook的BasicAuth凭据(包括`basic_auth_user`和`basic_auth_password`)。尽管旧代码正确屏蔽了HMAC `secret`字段,但在后续迁移中添加的BasicAuth字段未得到同样的处理。这导致只读协作者可以窃取用于外部Webhook接收器身份验证的凭据,造成信息泄露风险。
该漏洞的根本原因在于服务器端对敏感数据的输出过滤机制不完整。在处理`GET /api/v1/projects/:project/webhooks`请求的后端代码中,响应对象包含了Webhook的完整配置信息。虽然开发人员对HMAC `secret`字段实施了掩码处理以防止泄露,但在后续数据库迁移中引入的`basic_auth_user`和`basic_auth_password`字段未被纳入该保护逻辑中。攻击者只需拥有项目的读取权限,即可构造并发送GET请求至上述API接口。服务器在收到请求后,会对Webhook对象进行序列化并直接返回包含明文凭据的JSON数据。攻击者解析响应包即可获取用户名和密码。由于该漏洞通过网络即可触发,无需用户交互,且仅需低权限,因此具有较高被利用的风险,可能导致外部系统的凭据被盗用。