何が起きたか
Magic Link プラグインとソーシャル/Generic OAuth を併用し、OAuth の state をデータベースに保存する既定構成で、OAuth サインイン開始時に返る state を Magic Link のトークンとして使えてしまいます。攻撃者はメールボックスに触れずに、そのメールアドレスのユーザーとしてセッションを得られます。別件として、OAuth Proxy プラグインが専用の secret を持たず、state を cookie に保存している構成でも、他人としてサインインされる問題が公表されました。
やること
better-auth と同時に出たアダプター・プラグインをまとめて 1.7.7 へ更新します。勧告公開時点では 1.7.7 は「リリース予定」と書かれているため、npm に出ているか確認してください。更新までは、Magic Link の storeToken を hashed にして verification.storeIdentifier を未設定か plain にする、または Magic Link かソーシャルサインインを止めることが回避策です。OAuth Proxy を使う場合は、全環境でグローバルの secret と別の専用 secret を設定します。
出典
GitHub Advisory Database(GHSA-965c-763c-88jm)github.com英語 ↗GitHub Advisory Database(GHSA-r4xp-prcw-77qf)github.com英語 ↗上の要約は通り道編集部がまとめたものです。影響範囲と修正版は必ず各出典で確認してください。