내 페디버스 인박스는 서명은 검증하고, 그 키가 누구 것인지는 키의 자기주장을 믿었다 — 2.3.6에선 아무 서버나 남을 사칭할 수 있었다
Fedify critical 취약점(GHSA-q9f8-5hc7-898f)으로 인박스를 2.3.6에서 2.3.8로 올린 뒤, 두 버전을 나란히 깔고 위조 요청을 넣어봤다. 공격자 키에 owner: 피해자라고 적어 피해자 명의 Create를 자기 키로 서명하니, 2.3.6은 서명이 유효하다며 doesActorOwnKey가 true를 돌려줬다. 게이트가 key.ownerId === activity.actorId만 보고 피해자 문서를 확인하지 않았다. getKeyOwner는 이미 안전했는데 HTTP 서명 인박스는 그 함수를 안 썼다. owner를 안 밝힌 키는 2.3.6도 막았고, 세 인증 경로는 fetchKey 한 곳으로 모인다. 노출은 7월 27일부터 9월 28일까지 두 달. 서명 keyId는 안 남기지만 저장된 답글로 렌더 표면은 확인했다 — 두 달간 받은 답글 한 건은 본인 계정의 정상 답글이었고 사칭 흔적은 없었다. 로컬 실측 + prod 조회.
https://zerry.co.kr/blog/fedify-inbox-trusted-key-self-declared-owner
#ActivityPub #페디버스 #Fedify #보안 #실측