注目★★★★★GitHub Advisory
Hono OAuth providers 0.8.5以下、state欠落でログインCSRF
30秒で把握
- 1Hono OAuth providersでstate欠落を照合成功扱いしlogin CSRFを許容
- 2googleなど7プロバイダーが影響、0.8.5以下で強制アカウント連携
- 3csrf() middlewareはOAuthのGET遷移を検査せず、xはPKCEで対象外
要約
HonoのOAuthプロバイダーは、OAuthコールバックのstateが双方で欠落すると照合成功として処理し、正規のログイン要求でない認証コードも受け入れる。google、github、facebook、discord、twitch、linkedin、msentraが影響を受け、攻撃者のアカウントで被害者を操作させるlogin CSRFや、攻撃者のIDを被害者アカウントへ結び付ける強制アカウント連携が可能になる。対象は@hono/oauth-providers 0.8.5以下で、x(Twitter)はPKCE bindingにより悪用できない。Honoのcsrf() middlewareも、form形式ではないOAuthのトップレベルGET遷移を検査しないため防御にならない。
あなたへの影響
対象プロバイダーを使う日本の開発チームは、@hono/oauth-providersを修正版へ更新し、OAuth callbackでstate欠落を拒否する実装と既存連携の再検証を近日中に行うべきです。
推奨:stateは認証要求とコールバックを結び付けるCSRF対策値で、PKCEはx(Twitter)でのみ悪用防止要因になっています。