| Title | Apache Software FoundationのApache Camelにおける信頼できないデータのデシリアライゼーションに関する脆弱性 |
|---|---|
| Summary | Apache Camelには信頼されていないデータの逆シリアル化に関する脆弱性があります。いくつかのApache Camelコンポーネントに標準搭載されている防御層としての逆シリアル化フィルタリング用ObjectInputFilterのデフォルトパターン('java.**;javax.**;org.apache.camel.**;!*'、またはaggregation-repositoryコンポーネントでのjavax.**を含まないバリアント)は、再帰的な'java.**'のグロブを使用しており、hashCode/equals/readObjectメソッドがネットワークI/Oを行うクラス、特にjava.net.URLおよびjava.net.InetAddressを許可しています。攻撃者が影響を受けるCamelコンシューマにJavaシリアライズペイロードを届けられる場合、java.net.URLキーを含むHashMap(またはその要素のhashCodeを呼ぶコレクション)の逆シリアル化が行われると、JVMは逆シリアル化の副作用として攻撃者指定のホストにDNSクエリを発行します。クラスレベルのフィルタチェックは、結果として生成されるオブジェクトのクラス(HashMap)が許可リストに含まれているため通過します。このDNSクエリは攻撃者が制御するDNSサーバーで観測可能であり、アウトオブバンドのサイドチャネルを提供します。camel-jmsファミリーでの暴露度が最も高く、JmsBinding.extractBodyFromJmsがmapJmsMessage=true(デフォルト)の場合にObjectMessage.getObject()を無条件に呼び出すためです。影響を受けるコンポーネントにはcamel-jms、camel-sjms、camel-amqp、camel-mina、camel-netty、camel-netty-http、camel-vertx-http、camel-infinispan、およびaggregation repositoryコンポーネントのcamel-leveldb、camel-cassandraql、camel-consul、camel-sql(JDBC aggregation repository)が含まれます。この問題はApache Camelのバージョン4.14.0から4.14.8未満、4.15.0から4.18.3未満、4.19.0から4.21.0未満に影響します。ユーザーには、対応版であるCAMEL-23372修正を含む4.21.xラインの4.21.0、4.18.xラインの4.18.3、および4.14.xラインの4.14.8へのアップグレードを推奨します。すぐにアップグレードできない環境では、主要な緩和策としてJMSプロバイダ側の許可リスト(Apache ActiveMQ Artemisの'deserializationAllowList' / 'deserializationDenyList'、Apache ActiveMQ Classicの'org.apache.activemq.SERIALIZABLE_PACKAGES')を構成し、さらにエンドポイントレベルの'deserializationFilter'オプションまたはJVM全体の'-Djdk.serialFilter'システムプロパティを用いて、明示的な拒否を含む'!java.net.**;java.**;javax.**;org.apache.camel.**;!*'(aggregation-repositoryコンポーネント用はjavax.**を含まない'!java.net.**;java.**;org.apache.camel.**;!*')に上書きすることを推奨します。 |
| Possible impacts | ・当該ソフトウェアが扱う全ての情報が外部に漏れる可能性があります。 ・当該ソフトウェアが扱う全ての情報が書き換えられる可能性があります。 ・当該ソフトウェアが完全に停止する可能性があります。 |
| Solution | ベンダ情報を参照して適切な対策を実施してください。 |
| Publication Date | July 6, 2026, midnight |
| Registration Date | July 9, 2026, 10:59 a.m. |
| Last Update | July 9, 2026, 10:59 a.m. |
| CVSS3.0 : 重要 | |
| Score | 8.1 |
|---|---|
| Vector | CVSS:3.0/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H |
| Apache Software Foundation |
| Apache Camel 4.14.0 以上 4.14.8 未満 |
| Apache Camel 4.18.0 以上 4.18.3 未満 |
| Apache Camel 4.20.0 |
| No | Changed Details | Date of change |
|---|---|---|
| 1 | [2026年07月09日] 掲載 |
July 9, 2026, 10:59 a.m. |
| Summary | Deserialization of Untrusted Data vulnerability in Apache Camel. The default ObjectInputFilter pattern shipped with several Apache Camel components for defense-in-depth deserialization filtering ('java.**;javax.**;org.apache.camel.**;!*', or the no-'javax.**' variant in the aggregation-repository components) uses a recursive 'java.**' glob that admits classes whose hashCode/equals/readObject methods perform network I/O, notably java.net.URL and java.net.InetAddress. When an attacker can deliver a Java-serialized payload to an affected Camel consumer, deserialization of a HashMap (or any collection that calls hashCode on its elements) containing java.net.URL keys causes the JVM to issue DNS queries to the attacker-supplied host during the deserialization side-effect. The class-level filter check passes because the resulting object's class (HashMap) is allow-listed; the DNS query is observable on an attacker-controlled DNS server, providing an out-of-band side channel. The exposure is highest on the camel-jms family because JmsBinding.extractBodyFromJms invokes ObjectMessage.getObject() unconditionally when mapJmsMessage=true (default). Affected components: camel-jms, camel-sjms, camel-amqp, camel-mina, camel-netty, camel-netty-http, camel-vertx-http, camel-infinispan, and the aggregation repository components camel-leveldb, camel-cassandraql, camel-consul, camel-sql (JDBC aggregation repository). Users are recommended to upgrade to a version that contains the CAMEL-23372 fix once available: 4.21.0 for the 4.21.x line, 4.18.3 for the 4.18.x line, and 4.14.8 for the 4.14.x line. For deployments that cannot upgrade immediately, configure a JMS-provider-side allow-list (Apache ActiveMQ Artemis 'deserializationAllowList' / 'deserializationDenyList', Apache ActiveMQ Classic 'org.apache.activemq.SERIALIZABLE_PACKAGES') as the primary mitigation, and/or override the in-code default via the endpoint-level 'deserializationFilter' option or the JVM-wide '-Djdk.serialFilter' system property with an explicit deny: '!java.net.**;java.**;javax.**;org.apache.camel.**;!*' (or '!java.net.**;java.**;org.apache.camel.**;!*' for the aggregation-repository components, which do not include javax.**). |
|---|---|
| Publication Date | July 6, 2026, 6:16 p.m. |
| Registration Date | July 7, 2026, 4:22 a.m. |
| Last Update | July 8, 2026, 8:42 a.m. |
| Configuration1 | or higher | or less | more than | less than | |
| cpe:2.3:a:apache:camel:*:*:*:*:*:*:*:* | 4.14.0 | 4.14.8 | |||
| cpe:2.3:a:apache:camel:*:*:*:*:*:*:*:* | 4.18.0 | 4.18.3 | |||
| cpe:2.3:a:apache:camel:4.20.0:*:*:*:*:*:*:* | |||||