CVE-2026-88861
Capgo AAL1セッションの直接RBAC認可によるMFAバイパス
- 公開済み
- 2026/09/10
- 更新済み
- 2026/09/15
- CNA の割り当て
- VulnCheck
- 観察された証拠
- 2026/09/11
プライマリ CVSS
nvd · CVSS 4.0
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X低 · 今後 30 日間
- パーセンタイル
- 21.9%
- モデルの日付
- 2026/09/21
EPSS は統計的な推定値であり、確実性や影響の尺度ではありません。 CVSS、KEV ステータス、暴露、環境と組み合わせます。
概要
Capgo (Cap-go/capgo.app) には、すべてのバージョンに影響する認証バイパスが含まれています(公開時点で修正版はありません)。Edge 認可パスでは、パスワードのみの Supabase aal1 セッションが、アカウントに検証済みの MFA 要素があり、それがセッションで使用されていない場合でも、特権的な RBAC 権限を行使できるようになっています。Edge JWT ミドルウェア(`supabase/functions/_backend/utils/hono_middleware.ts` の `foundJWT()`)は、JWT の保証レベルを検証せずに受け入れ、直接 RBAC パス(`supabase/functions/_backend/utils/rbac.ts` の `checkPermission()`/`checkPermissionPg()` が `public.rbac_check_permission_direct()` を呼び出す)は、セッションの aal を渡したりチェックしたりせずにユーザー ID で認可します。これは、正しく aal2 を要求する `public.verify_mfa()` 制御とは異なります。したがって、被害者のパスワードのみを知る攻撃者は認証を行い、aal1 セッションがログアウトされた後も有効なままの永続的なアプリスコープの `app_admin` API キーを発行し、本番 OTA チャネル設定の変更(パブリックな本番チャネルをバンドル 1.0.0 から 1.0.1 に変更することで検証済み)などの特権操作を実行でき、MFA による保護を無効化します。
ソース
1SecDim Challenge Builder repro inspired by CVE-2026-88861: 特権資格情報境界におけるAAL1 MFAバイパス
責任ある使用
脆弱性情報は、自分が所有しているシステム、またはテストを許可されているシステムでのみ使用してください。 Kitploit は公開研究メタデータにリンクしており、エクスプロイト コードや悪意のあるペイロードは保存しません。