报告 #3329310 - 不当的机器人身份验证允许在房间发送消息时冒充任何用户
时间线
ID认证黑客(已成功完成身份验证)stackered 向 Basecamp 提交了一份报告。
2025年9月6日,下午3:24 (UTC)
机器人被允许在房间内发送消息,但需要使用机器人密钥进行身份验证。 机器人密钥身份验证函数如下:
|
|
问题是,如果 bot_key 没有右侧部分(例如:“1-"),bot_token 将为 nil,并且如果 bot_id 匹配一个有效的用户ID,查询将匹配到一个 User 记录。
ID是递增的,正如在Rails控制台中可以看到的那样,因此很容易被猜到。它们在一些URL中也是可见的。
|
|
以下请求突显了此问题,因为它允许未经验证的用户冒充另一个用户(此处ID为2)并以他们的名义发布消息:
|
|
附带的图片显示消息已成功发布,并且似乎来自"test"用户。
影响 一个未经验证的用户可以以任何用户的身份,在被冒充用户有权访问的聊天室中发送任意消息。
附件
1 个附件 F4756254: message_posted.png
jacopo-beschi 发表了一条评论。 2025年9月9日,下午4:08 (UTC)
谢谢!我确认报告的有效性。我会很快给你赏金。
jacopo-beschi 将严重性从 high (8.7) 更新为 medium (6.5)。 2025年9月9日,下午4:18 (UTC)
jacopo-beschi 将严重性从 medium (6.5) 更新为 high (7.5)。 2025年9月9日,下午4:23 (UTC)
jacopo-beschi 将严重性从 high (7.5) 更新为 high。 2025年9月9日,下午4:23 (UTC)
jacopo-beschi 将严重性从 high 更新为 high (7.5)。 2025年9月9日,下午4:24 (UTC)
jacopo-beschi 将严重性从 high (7.5) 更新为 high。 2025年9月9日,下午4:26 (UTC)
jacopo-beschi 发表了一条评论。 2025年9月10日,上午7:18 (UTC)
快速更新一下:我们将从Campfire中移除赏金,因为该项目现在是开源的,我们不再有相关的资金。我正在与团队讨论如何最好地处理现有的报告。 我会随时通知你。
Basecamp 奖励了 stackered 2000美元赏金。 2025年9月10日,上午8:43 (UTC)
jacopo-beschi 发表了一条评论。 2025年9月10日,上午8:44 (UTC)
你好,我刚刚向你提供了2000美元的赏金:我们决定为现有的Campfire报告提供赏金,但我们将不再为该资产提供赏金。 我们刚刚在1.1.8版本中发布了一个修复程序。你能确认你无法再复现这个问题吗? 谢谢
jacopo-beschi 将状态更改为 Triaged。 2025年9月10日,上午8:45 (UTC)
ID认证黑客(已成功完成身份验证)stackered 发表了一条评论。 更新于 2025年9月10日,上午11:22 (UTC)
你好,谢谢你的赏金! 我无法访问你提供的链接进行验证。我得到一个404错误。
jacopo-beschi 发表了一条评论。 2025年9月11日,上午10:33 (UTC)
抱歉,我刚刚把修复推送到了开源仓库,你现在可以验证了吗? 谢谢
ID认证黑客(已成功完成身份验证)stackered 发表了一条评论。 2025年9月11日,上午11:23 (UTC)
你好,我确认在打补丁后无法复现该问题。
jacopo-beschi 发表了一条评论。 2025年9月11日,下午12:06 (UTC)
太好了,谢谢!
jacopo-beschi 关闭了报告并将状态更改为 Resolved。 2025年9月11日,下午12:06 (UTC)
stackered 请求公开此报告。 5天前
jeremy (Basecamp员工) 同意公开此报告。 5天前
此报告已被公开。 5天前
报告于 2025年9月6日,下午3:24 (UTC)
报告者
stackered
报告给 Basecamp
参与者 (略)
报告ID #3329310
状态 已解决
严重性 高 (7 ~ 8.9)
公开日期 2025年11月21日,下午7:39 (UTC)
弱点 不当的身份验证 - 通用
CVE ID 无
赏金 $2,000
账户详情 无