概要
Java ユーティリティ ライブラリ mchange-commons-java に JNDI インジェクション 脆弱性 が 発見 されました。この ライブラリ は JDK の JNDI 機能 を 独自 に 実装 しており、リモート の factoryClassLocation 値 を サポート しています。
JDK 側 では com.sun.jndi.ldap.object.trustURLCodebase プロパティ で リモート コード の ダウンロード が デフォルト 無効 に されましたが、mchange-commons-java の 独自 実装 は この 制限 を 受けません。c3p0 コネクション プール など、この ライブラリ を 経由 して JNDI デリファレンス を 行う アプリケーション が 影響 を 受けます。
技術的 な 背景
Java の JNDI(Java Naming and Directory Interface)は リモート オブジェクト の ルックアップ に 使用 される 機能 です。過去 に Log4Shell(CVE-2021-44228)で 大きな 問題 と なり、JDK 側 で com.sun.jndi.ldap.object.trustURLCodebase プロパティ が デフォルト false に 変更 され、リモート からの コード ダウンロード が 制限 されました。
しかし、mchange-commons-java は JDK とは 独立 した JNDI デリファレンス 実装 を 持っており、JDK の 制限 を 受けません。特に c3p0 コネクション プール ライブラリ は mchange-commons-java を 経由 して リファレンス を 解決 する ため、JDK を ハードニング した 環境 でも 攻撃 が 成立 する 可能性 が あります。
CVSS ベクトル
| 項目 | 値 |
|---|---|
| CVSSスコア | 9.8 (Critical) |
| 攻撃元区分 | ネットワーク |
| 攻撃条件の複雑さ | 低 |
| 必要な特権レベル | なし |
| ユーザ関与 | なし |
| CWE | CWE-74 (インジェクション) |
影響 を 受ける ソフトウェア
| 製品 | ベンダー | 影響バージョン |
|---|---|---|
| mchange-commons-java | swaldman | 0.4.0 未満 |
| c3p0 | mchange | mchange-commons-java 0.4.0 未満 に 依存 する バージョン |
修正 バージョン と 回避策
- mchange-commons-java 0.4.0 以降 に アップデート して ください
- 0.4.0 では JDK パッチ と 同様 に JNDI 機能 が 制限的 な デフォルト 値 で ゲート されます
- 0.4.0 未満 の バージョン は アプリケーション の CLASSPATH から 除外 する こと を 推奨 します
- c3p0 を 使用 している 場合 は c3p0 の セキュリティ 設定 も 併せて 確認 して ください
- 既知 の 回避策 は ありません
関連リンク
データソース: NVD (NIST), GitHub Advisory Database AI解説は Claude API により自動生成されています。正確性については原文をご確認ください。
