目次(5)

CVE-2026-120201
運用管理ツール Jpom の 2.10.0 から 2.11.12 までで、認証なしの攻撃者が JPOM-USER-TOKEN ヘッダーに条件式を入れるだけで、スーパー管理者のセッションを得られる不具合(CVE-2026-120201)が 10/31 に NVD へ公開されました。NVD の説明(脆弱性を届けた VulnCheck の記載)では、そこからスクリプト機能を通じてコマンドを実行できます。CVSS は v3.1 が 9.8、v4.0 が 9.3 で、いずれも Critical です。公開時点で、修正版のリリースも修正コミットも確認できていません。 最新のリリースは 2.11.12(2025-05-06)のままです。
何が起きるか
- Jpom は、API 用の認証ヘッダー
JPOM-USER-TOKENを受け取ると、その値をUserService.checkUser()に渡します。この関数は値をパスワードの項目に入れ、Hutool のqueryByBean()で検索します。 - Hutool はその値を検索の条件式として解釈します。報告(GitHub の Issue #121)によると、
is not nullを送るとWHERE password IS NOT NULLとして評価され、最初に見つかった有効なユーザー(新規導入の環境ではスーパー管理者)が返り、セッションに入ります。認証情報は要りません。 - 報告は、その管理者セッションからサーバー側のスクリプトを保存・実行でき、公式イメージでは Jpom のプロセスは root で動くため、サーバー上で任意のコマンドが動かせるとしています。ノード機能を通じて管理下のホストにも及ぶ可能性がある、とも述べています。
- 当サイトでは再現していません。ただし、コードの該当部分は v2.11.12 と master(最終コミット 2026-02-06)の両方で、報告が引用する形(ヘッダーを検証せず
checkUserへ渡し、setPasswordしてqueryByBean)のまま変わっていないことを確認しました。 - 悪用の報告は確認できていません。CISA の KEV には載っていません(2026.10.30 版の一覧で確認)。
影響を受ける条件
| 項目 | 内容 |
|---|---|
| 対象 | Jpom(dromara/Jpom)の 2.10.0 から 2.11.12(NVD の記載) |
| 前提 | 攻撃者が Jpom サーバーの HTTP ポートに到達できること。認証・権限は不要 |
| 評価 | CVSS v3.1 は 9.8(Critical、AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H)、v4.0 は 9.3。どちらも CNA の VulnCheck が付けた値(v3.1 は種別 Primary、v4.0 は Secondary)で、NVD 自身の評価ではない。NVD の状態は「Deferred」(10/31 時点) |
| 弱点の分類 | CWE-943(データ問い合わせ処理での特殊要素の不適切な無害化) |
| 修正版 | なし(確認できず)。最新リリースは 2.11.12 |
修正の状況
- 最新のリリースは v2.11.12(2025-05-06 UTC)です。master の最新コミットは 2026-02-06 UTC のもので、報告後(10/30)に増えた修正コミットはありません。そのため、修正コミットがタグに含まれるかの照合は、対象がなく行えません。
- Issue #121 は 10/30 UTC に立てられ、確認時点でコメントはなく、開いたままです。開発側の反応は確認できていません。
- 報告は、ヘッダー値を固定長の16進ダイジェストとして検証すること、呼び出し元の文字列を
queryByBeanに渡さないことを提案しています。これは報告者の提案で、開発側が採用したものではありません。
対応(修正版が出るまで)
- Jpom のサーバーの管理画面と API を、インターネットや信頼できないネットワークに公開しないでください。VPN や許可した送信元からだけに絞ることを検討します(本記事の推定です)。
- リバースプロキシなどで
JPOM-USER-TOKENヘッダーを持つ外部からの要求を遮断する方法があります。API 利用者が正規にこのヘッダーを使っている場合は先に影響を確認してください(本記事の推定で、効果は検証していません)。 - 公開していた環境では、予期しないスクリプトの登録・実行、トリガー URL の発行、管理者としてのログイン記録がないか確認します(本記事の推定)。Jpom を root で動かしている場合は、権限を落とすことも検討します。
- 開発側のリリースや Issue #121 の更新を確認し、修正版が出たら更新します。
未確認の点
- 修正版・回避策の公式情報は確認できていません。開発側の反応も確認できていません。
- 悪用の報告は確認できていません。KEV にも載っていません。
- NVD の評価は未実施(状態は Deferred)で、CVSS は CNA(VulnCheck)の値です。
- EPSS は公開直後のため未算出です(FIRST にデータなし)。
- 報告の再現手順(管理者の取得、スクリプトの実行、公式イメージで root)は当サイトでは再現していません。2.10.0 より前の版が影響を受けないかも確認していません。
- 日付は、NVD の公開(2026-10-31 18:17 UTC)、Issue の作成(2026-10-30 UTC)、GitHub のリリース・コミットの記録に基づきます。
この記事について
- 執筆・編集
- World Security 編集部
出典
- NVD CVE-2026-120201(NIST NVD)
- GitHub Advisory GHSA-mr28-xw2h-9rw4(GitHub)
- VulnCheck の勧告(VulnCheck)
- Jpom Issue #121(GitHub)
- 該当コード(v2.11.12)LoginInterceptor.java(GitHub)
- FIRST EPSS CVE-2026-120201(FIRST)




