Account Takeover Vulnerability Found in Better Auth Library
2025/02/07 SecurityOnline — 人気の TypeScript 認証フレームワーク Better Auth ライブラリに、深刻なセキュリティ脆弱性が発見された。この脆弱性の悪用に成功した攻撃者は、セキュリティ対策を回避し、ユーザー・アカウント乗っ取りの可能性を手にする。
この脆弱性は、信頼できる Web サイトであっても、そこへのリダイレクトを制限するように設計された、trustedOrigins 保護機能に存在する。そして、この機能を悪用する攻撃者は、悪意の Web サイトへとユーザーをリダイレクトするためのバイパスを見つけ出せる状況にある。

Better Auth のセキュリティ・アドバイザリには、「セキュリティ機能である trustedOrigins にバイパスが発見された。この脆弱性は、ワイルドカードまたは絶対 URL の trustedOrigins コンフィグで発生し、被害者の Web サイトをオープン・リダイレクトへと導く。この脆弱性を悪用する攻撃者は、callbackURL パラメータ値を攻撃者が所有する Web サイトを指すものに変更することで、被害者のアカウントのパスワード・リセット・トークンを盗み出す機会を得る」と記されている。
この脆弱性は、攻撃者が悪意のあるリンクを作成して被害者に送信する、オープン・リダイレクト攻撃で悪用される可能性がある。その悪意のリンクを被害者がクリックすると、攻撃者が管理する Web サイトへとリダイレクトされ、パスワード・リセット・トークンが盗み出され、アカウントを乗っ取りへといたる可能性がある」と記されている。
この脆弱性は、trustedOrigins の処理を担当するミドルウェアにおける、コールバック URL の不適切な検証により発生する。攻撃者は、以下のような悪意のペイロードを作成できる。
https://demo.better-auth.com/api/auth/reset-password/x?callbackURL=/\/example.com
これにより、URL の解析方法の欠陥を悪用され、被害者を外部ドメインにリダイレクトできるようになる。被害者がリンクをクリックすると、パスワード・リセット・トークンが攻撃者の Web サイトに送信され、アカウントが完全に侵害される恐れが生じる。
別の悪用方法として、ライブラリの trustedOrigins 処理で、弱い正規表現パターンを使用する方法もある “: [^/\]?.example.com[/\]?”
したがって攻撃者は、以下のようなペイロードを悪用できる:
http:attacker.com?.example.com/
“:” と “?” は URL 内の特殊文字であるため、ブラウザは “http:” をプレーン・テキストではなく、URL スキームの一部として解釈し、誤って攻撃者のサイトへのリダイレクトを行ってしまう。
すでに Better Auth プロジェクトは、バージョン 1.1.21 をリリースし、この脆弱性に対処している。 Better Auth ライブラリの、すべてのユーザーに強く推奨されるのは、可能な限り早急に最新バージョンへとアップデートし、潜在的な攻撃から身を守ることだ。
TypeScript 向けの包括的な認証フレームワークである Better Auth に、脆弱性が発生しています。この脆弱性が悪用されると、アカウントの乗っ取りへといたる可能性があるとのことです。ご利用のチームは、アップデートをご確認下さい。よろしければ、カテゴリAuthN AuthZ も、ご参照下さい。
You must be logged in to post a comment.