CVE-2026-54894 in Guardian情報

要約

〜によって VulDB • 2026年08月02日

ueberauth guardianにおけるリソースの制限またはスロットリングなしでの割り当てにより、攻撃者が操作可能なバイナリ入力からの無制限なアトム生成を通じてサービス拒否(DoS)を誘発できる。

Guardian.Plug.Keysは、任意のバイナリデータをString.to_atom/1に渡すことで接続およびセッションの名前空間キーを取得する。lib/guardian/plug/keys.ex内のbase_key/1関数はあらゆるバイナリをアトム :"guardian_<input>" に変換し、派生ヘルパーであるclaims_key/1、resource_key/1、token_key/1はさらにその上に2つ目のアトムを作成する。key_from_other/1も同様に、正規表現でキャプチャされたバイナリデータをString.to_atom/1を通じて変換する。公開されている仕様では文字列(String.t())が有効な引数として謳われているため、文字列を渡すことは文書化された使用法であり、Guardian.Plug.current_token(conn, key: key)のような高レベルのエントリポイントは呼び出し元から提供されたキーをこれらの関数に直接引き渡す。

String.to_atom/1は、以前に見たことのないバイナリごとに新規のアトムを作成するが、アトムはガベージコレクションの対象とならない。また、BEAMのデフォルトではアトムテーブルのエントリ数は約1,048,576に固定されている。したがって、攻撃者が操作可能なデータ(テナント識別子、ヘッダー、またはその他のリクエスト入力)をGuardianキーへルーティングするアプリケーションは、一意な値ごとに永続的なアトムを作成することになる。多様で認証されていない入力のわずかなストリームでも、アトムテーブルが永久に消費されBEAMノードがクラッシュし、その上で実行されているすべてのアプリケーションのダウンを引き起こす。

この問題はguardian 0.1.0から2.4.1未満に影響する。

Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.

責任者

EEF

予約する

2026年06月16日

モデレーション

承諾済み

エントリ

VDB-385308

EPSS

0.00000

アクティビティ

中間

ソース

Interested in the pricing of exploits?

See the underground prices here!