CVE-2025-62176CVE-2025-62176是Mastodon开源社交网络服务器中的一个权限绕过漏洞。Mastodon是基于ActivityPub协议的免费开源社交网络平台,允许用户构建去中心化的社交网络。该漏洞存在于Mastodon的流式服务器(Streaming Server)组件中,具体影响版本为4.4.6之前、4.3.14之前和4.2.27之前的所有版本。
该漏洞的核心问题在于,Mastodon的流式服务器在接受公共时间线(public timelines)的事件订阅时,未能正确验证OAuth令牌的权限范围(scope)。具体来说,即使客户端使用的OAuth令牌不具备`read:statuses`(读取状态)权限范围,流式服务器仍然允许这些客户端订阅公共频道并接收公共时间线事件。这违反了OAuth授权的最小权限原则。
该漏洞的影响相对有限,因为攻击者只能访问新发布的公共帖子,且需要拥有一个有效的认证令牌。但在有限联邦(limited-federation)设置环境中,这可能导致对公共帖子的意外访问,泄露用户预期仅在特定联邦范围内可见的内容。该漏洞已被Mastodon官方修复,修复版本为4.4.6、4.3.14和4.2.27。
Mastodon的流式服务器使用WebSocket或Server-Sent Events(SSE)协议向客户端实时推送时间线更新。正常情况下,当客户端通过OAuth认证连接到流式服务器订阅公共时间线时,服务器应当验证客户端令牌是否具有`read:statuses`权限范围。
漏洞的根因在于流式服务器在处理公共频道(如`public`和`public:local`)的订阅请求时,缺少对令牌scope的严格校验逻辑。攻击者只需持有一个有效的OAuth令牌(即使该令牌仅具有其他权限范围,如`read:accounts`或`write:statuses`),即可通过WebSocket连接到流式服务器的公共频道端点,实时接收所有公共时间线上的新帖子。
利用方式如下:
1. 攻击者通过Mastodon的OAuth流程获取一个有效的认证令牌,但该令牌不包含`read:statuses` scope。
2. 攻击者使用该令牌通过WebSocket连接到Mastodon流式服务器的公共频道端点(如`wss://mastodon-instance/api/v1/streaming?stream=public`)。
3. 流式服务器未进行scope校验,直接接受连接并开始推送公共时间线上的新帖子事件。
4. 攻击者可实时获取平台上所有公开发布的内容,即使在有限联邦设置中这些内容不应被其访问。
修复方案是在流式服务器处理订阅请求时,增加对令牌scope的验证,确保只有具备`read:statuses`权限的令牌才能订阅公共时间线频道。