
# CVE-2026-47777 상세 기술 분석: Mastodon의 Featured Collections 연합 파이프라인에서의 높은 심각도 권한 부여 우회 — 근본 원인, PoC 및 패치 포함
저는 Mastodon의 실험적 추천 컬렉션(Featured Collections) 연합 파이프라인에 영향을 미치는 고심각도 인가 우회(Authorization Bypass) 취약점을 책임 있는 공개(responsible disclosure) 방식으로 보고했습니다.
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 인스턴스가 인가 문서를 위조하여 임의의 원격 사용자가 큐레이션된 추천 컬렉션에 등장하는 데 동의했다고 거짓으로 표시할 수 있었습니다.
이는 연합 무결성에 영향을 미치는 인가 우회(Authorization Bypass) 로 이어졌습니다.
이 취약점은 다음 내부의 식별자 바인딩(identity binding) 누락으로 인해 발생했습니다:
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)보고서를 검토하고, 문제를 검증하며, CVE-2026-47777을 지정하고, 책임 있는 공개를 통해 조정된 보안 수정을 구현해 주신 Mastodon 보안 팀에 특별히 감사드립니다.
보안 연구원: Bekzod
본 책임 있는 공개는 조정된 취약점 공개(coordinated vulnerability disclosure) 관행에 따라 수행되었습니다.
| 날짜 | 이벤트 |
|---|
| 2026 | 연구 완료 |
| 2026 | 책임 있는 공개 제출 |
| 2026 | 취약점 재현 |
| 2026 | CVE 지정 (CVE-2026-47777) |
| 2026 | 패치 릴리스 (Mastodon 4.6.0-beta.1) |