【活用ガイド】

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値]
  • 攻撃元区分: ネットワーク
  • 攻撃条件の複雑さ: 低
  • 攻撃に必要な特権レベル: 不要
  • 利用者の関与: 不要
  • 影響の想定範囲: 変更なし
  • 機密性への影響(C): なし
  • 完全性への影響(I): なし
  • 可用性への影響(A): 高
影響を受けるシステム


Phoenix team
  • Phoenix 1.2.0 以上 1.5.15 未満
  • Phoenix 1.6.0 以上 1.6.17 未満
  • Phoenix 1.7.0 以上 1.7.24 未満
  • Phoenix 1.8.0 以上 1.8.9 未満

本脆弱性の影響を受ける製品の詳細については、ベンダ情報および参考情報をご確認ください。
想定される影響

・当該ソフトウェアが扱う情報について、外部への漏えいは発生しません。
・当該ソフトウェアが扱う情報について、書き換えは発生しません。
・当該ソフトウェアが完全に停止する可能性があります。
対策

ベンダ情報を参照して適切な対策を実施してください。
ベンダ情報

Erlang Ecosystem Foundation GitHub Open Source Vulnerabilities
CWEによる脆弱性タイプ一覧  CWEとは?

  1. 例外的な状態における不適切なチェック(CWE-754) [その他]
共通脆弱性識別子(CVE)  CVEとは?

  1. CVE-2026-56812
参考情報

  1. National Vulnerability Database (NVD) : CVE-2026-56812
  2. 関連文書 : fix presence keys colliding with object prototype chain  phoenixframework/phoenix@89a1c4b  GitHub
  3. 関連文書 : fix presence keys colliding with object prototype chain  phoenixframework/phoenix@b90b225  GitHub
  4. 関連文書 : fix presence keys colliding with object prototype chain  phoenixframework/phoenix@beffc4d  GitHub
  5. 関連文書 : fix presence keys colliding with object prototype chain  phoenixframework/phoenix@7f7b971  GitHub
更新履歴

  • [2026年07月13日]
      掲載