JVNDB-2026-023422 | |
Phoenix teamのPhoenixにおける例外的な状態のチェックに関する脆弱性 | |
| 概要 | |
phoenixframeworkのphoenix(Presence JavaScriptクライアント)における異常または例外条件の不適切なチェックの脆弱性により、通常のチャネルアクセス権を持つ攻撃者が、Presenceチャネルトピックのすべての閲覧者に対して永続的なクライアント側サービス拒否(DoS)を引き起こすことが可能です。この脆弱性は、プログラムファイルassets/js/phoenix/presence.jsおよびプログラムルーチンPresence.syncStateとPresence.syncDiffに関連しています。PhoenixのJavaScript presenceクライアントは、存在チェックに自身のプロパティかどうかではなく単純な真偽値テスト(state[key])を使用しています。Presenceのキーは攻撃者が制御可能であり、アプリケーションはクライアントから提供されたユーザー名やIDの下でpresencesを追跡しています。ユーザーがチャネルに参加する際に、Object.prototypeのメンバー名(__proto__、constructor、toString、hasOwnPropertyなど)をキーに選択すると、そのルックアップは未定義(undefined)ではなくJavaScriptの組み込みObject.prototypeを返します。プロトタイプはtruthyであるため、コードはそれを既存のpresenceとみなし、.metas.map(...)を読み取ろうとして未捕捉のTypeErrorを投げます。この例外はpresenceメッセージハンドラーの外に伝播し、その結果ローカルステートが更新されず、onSync()も発火しません。悪意のあるキーはサーバー上で追跡されるため、各presence更新時に再度プッシュされ続け例外が繰り返し発生し、そのチャネルトピックのすべての閲覧者に対してpresence同期が壊れ続けます。攻撃者が離脱するまで問題は解決されません。syncStateとsyncDiffは同じ安全でない存在確認パターンを使用しています。影響は対象トピックに限定され、プロトタイプオブジェクトの読み取り時の混乱であり、Object.prototypeの変更(プロトタイプ汚染)ではありません。この問題は、phoenixのバージョン1.2.0-rc.0から1.5.15未満、1.6.0-rc.0から1.6.17未満、1.7.0-rc.0から1.7.24未満、および1.8.0-rc.0から1.8.9未満に影響します。 | |
| CVSS による深刻度 (CVSS とは?) | |
|
CVSS v3 による深刻度
基本値: 7.5 (重要) [NVD値]
| |
| 影響を受けるシステム | |
|
| |
Phoenix team | |
本脆弱性の影響を受ける製品の詳細については、ベンダ情報および参考情報をご確認ください。 | |
| 想定される影響 | |
・当該ソフトウェアが扱う情報について、外部への漏えいは発生しません。 | |
| 対策 | |
ベンダ情報を参照して適切な対策を実施してください。 | |
| ベンダ情報 | |
Erlang Ecosystem Foundation | |
| CWEによる脆弱性タイプ一覧 CWEとは? | |
|
| |
| 共通脆弱性識別子(CVE) CVEとは? | |
|
| |
| 参考情報 | |
| |
| 更新履歴 | |
|
| 公表日 | 2026/07/07 |
| 登録日 | 2026/07/13 |
| 最終更新日 | 2026/07/13 |



