Better-Auth API キーの脆弱性 CVE-2025-61928 が FIX:特権認証の不正付与の可能性

Better Auth API keys Vulnerability Let Attackers Create Privileged Credentials For Arbitrary Users

2025/10/21 CyberSecurityNews — 人気の TypeScript 認証フレームワーク Better-Auth の API キー・プラグインに、深刻な脆弱性 CVE-2025-61928 が発見された。この脆弱性が影響を及ぼす範囲は、npm で週に約 30 万回もダウンロードされている Better-Auth の API キー・プラグイン導入環境である。悪用に成功した攻撃者は認証を必要とせずに、任意のユーザーに対して特権認証情報を付与できるようになる。

この脆弱性の影響が顕著なのは、自動アクセスに API キーを使用するアプリケーションであるため、広範なアカウント侵害につながる恐れがある。Better-Auth は、エネルギー大手 Equinor などの急成長中のスタートアップや大企業の認証を支えている。そのプラグイン・アーキテクチャにより、API キー管理などの機能の追加が容易である一方で、認証ロジックには悪用が可能な微妙なバグが存在していた。

ZeroPath がサードパーティ依存関係のスキャン中に発見した、この脆弱性が浮き彫りにするのは、アプリケーション・エコシステム全体を支える認証ライブラリのリスクである。

Better-Auth API キーの脆弱性

この脆弱性は、プラグイン内の createApiKey ハンドラーに存在する。通常において、このハンドラーはアクティブなセッションからユーザー・コンテキストを導出してセキュリティ・チェックを適用する。

しかし、リクエストにセッションが存在せず、ボディに userId が含まれる場合には、コードが authRequired フラグを false に設定するため、重要な検証がスキップされてしまう。したがって、このハンドラーは、攻撃者が送信したデータに対して、ユーザー・オブジェクトの偽装を許すことになる。

その結果として未認証の攻撃者は、ターゲットユーザーの ID/name/レート制限/権限といった任意の特権フィールドを用いて、”/api/auth/api-key/create” エンドポイントへ POST を送信できる。

そのレスポンスとして、被害者アカウントに紐付いた有効な API キーが返されるため、多要素認証の回避とスクリプトによる乗っ取りが可能になる。なお、同様のロジックは更新用エンドポイントにも影響するため、さらにリスクが増大する。

自動化のための API キーは、長期間にわたり昇格された権限を保持することが多いため、この脆弱性は極めて危険である。攻撃者が自動化するものには、ユーザーなりすまし/機密データへのアクセス/サービス全体での悪意などがあるという。

この攻撃のターゲットは、API キー・プラグインを導入している環境に限られるが、Better-Auth の普及状況を考慮すると、その影響の範囲は広大である。対策として強く推奨されるのは、問題のある認証チェックを修正した Better-Auth バージョン 1.3.26 以降へと、直ちにアップグレードすることだ。

さらに、プラグイン経由で作成された、すべての API キーをローテーションし、未使用の API キーを無効化することも推奨される。また、”/api/auth/api-key/create” および更新エンドポイントに対する未認証のリクエストを、特にユーザー ID や高い権限を持つリクエストを、監査ログで確認する必要がある。

すでに Better-Auth の開発者は、10月2日の時点で修正パッチを適用している。10月8日にアドバイザリ (GHSA-99h5-pjcv-gr6v) が GitHub で公開され、その翌日に CVE が割り当てられた。