我负责任地披露了一个影响 Mastodon 实验性 Featured Collections 联邦管道的高危授权绕过漏洞。
CVE ID: CVE-2026-47777
ActivityPub::VerifyFeaturedItemService| 分数 | 向量 |
|---|---|
| 7.5(高危) | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N |
Featured Collections 验证管道接受伪造的 FeatureAuthorization 对象,而未验证该授权是否确实属于被精选的帐户。
验证逻辑仅确保:
然而,它未验证:
FeatureAuthorization.interactionTarget
是否与正在插入到 Collection 中的帐户匹配。
结果,恶意的联邦 Mastodon 实例可以伪造授权文档,并虚假地表明任意远程用户已同意出现在策展的 Featured Collections 中。
这导致了影响联邦完整性的授权绕过。
该漏洞由 ActivityPub::VerifyFeaturedItemService 中缺少身份绑定引起:
ActivityPub::VerifyFeaturedItemService
该服务未能比较:
CollectionItem.object_uri
与
FeatureAuthorization.interactionTarget
由于缺少此验证,授权对象可被重复用于无关的受害者帐户。
攻击者可:
FeatureAuthorization 文档影响: 联邦完整性(仅限于完整性)
机密性未受影响。
缺失的验证实质上为:
return if @collection_item.object_uri != value_or_id(@authorization['interactionTarget'])
没有此身份检查,攻击者控制的域生成的授权文档可被接受用于无关用户。
该漏洞通过多种方法独立验证:
自定义 Python 验证框架测试了 Mastodon 解析器支持的每一种 JSON-LD @context 变体。
分析确认该漏洞源于缺少授权绑定,而非 JSON-LD 解析。
漏洞利用工作流如下:
FeatureAuthorization 对象。受害者帐户显示为已同意被精选,尽管从未授予授权。
通过在以下两者之间引入显式身份验证解决了该问题:
CollectionItem.object_uri)FeatureAuthorization.interactionTarget)在接受授权之前。
特别感谢 Mastodon 安全团队审查报告、验证问题、分配 CVE-2026-47777,并通过负责任披露实施了协调安全修复。
安全研究员: Bekzod
按照协调漏洞披露实践进行了负责任披露。
| 日期 | 事件 |
|---|
| 2026 年 | 研究完成 |
| 2026 年 | 提交负责任披露 |
| 2026 年 | 漏洞复现 |
| 2026 年 | 分配 CVE(CVE-2026-47777) |
| 2026 年 | 发布补丁(Mastodon 4.6.0-beta.1) |