人気のオープンソーススケジューリングプラットフォームであるCal.comで新たに公開された欠陥により、攻撃者は被害者のメールアドレスを知っているだけで、あらゆる認証や多要素保護さえも回避して任意のユーザーアカウントを乗っ取れる可能性がありました。
セキュリティ研究者 Pedro Castro は、アドバイザリ GHSA-7hg4-x4pr-3hrg を公開し、この問題の詳細を明らかにしました。本件は現在 CVE-2026-23478 として追跡されており、悪用が容易で影響を受けるアカウントを完全に侵害できることから、CVSS v4で Critical(重大) と評価されています。
この脆弱性の原因は、Cal.comの認証フローで使用されている カスタムNextAuth JWTコールバック にあります。
このコールバックが trigger === "update"It accepts identity fields supplied by the client and writes them directly into the JWT without server-side validation.
つまり、攻撃者は session.update({ email: "[email protected]" }) を呼び出し、サーバーに次のような新しいトークンを発行させることができます:
このJWTで認証された後続のリクエストは、被害者からのものとして扱われます。
Cal.comのアプリケーションロジックは、データベース内のユーザーを検索するために token.email フィールドを使用しているため、セッションは被害者のレコードから再構築され、結果として被害者のアカウント全体が引き渡される形になります。
この問題は Cal.comのバージョン >= 3.1.6 かつ < 6.0.7 に影響します。プロジェクトは バージョン6.0.7以降 で修正をリリースしています。
悪用されると、この欠陥により標的ユーザーのアカウントへの 完全な認証済みアクセス が付与されます。アドバイザリによれば、攻撃者は直ちに次へアクセスできる可能性があります:
特筆すべき点として、欠陥は認証後に発生し、JWTペイロードからセッションが構築される段階で起きるため、 2FA(2要素認証)や外部のIDプロバイダー(IdP)ではこの攻撃を緩和できません。
この攻撃に必要なのは単一のAPI呼び出しのみで、ユーザー操作や事前権限なしにネットワーク越しにリモート悪用が可能であり、 CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N のベクターに一致します。
この弱点は CWE-602(サーバー側セキュリティのクライアント側強制) および CWE-639(ユーザー制御キーによる認可回避) に分類されており、設計上の中核的問題を反映しています。すなわち、サーバーがクライアント制御のデータ(email)を認可キーとして信頼し、それが認証済み主体に属することを検証していなかった点です。
自己ホスト型またはオンプレミスのCal.comインスタンスを運用しているユーザーは、できるだけ早く バージョン6.0.7以降へアップグレード し、同様のクライアント信頼の落とし穴がないかカスタム認証ロジックを見直すことが強く推奨されます。
翻訳元: https://cyberpress.org/critical-cal-com-flaw-2/