CVE-2026-43866
Apache Camel、Apache Camel: Camel JMS - CVE-2026-40860 の修正バイパス(DefaultExchangeHolder 経由)
- 公開済み
- 2026/07/06
- 更新済み
- 2026/07/06
- CNA の割り当て
- apache
- 観察された証拠
- 2026/08/06
プライマリ CVSS
nvd · CVSS 3.1
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L低 · 今後 30 日間
- パーセンタイル
- 49.5%
- モデルの日付
- 2026/09/21
EPSS は統計的な推定値であり、確実性や影響の尺度ではありません。 CVSS、KEV ステータス、暴露、環境と組み合わせます。
概要
# Apache Camel における信頼されないデータの逆シリアル化の脆弱性 Apache Camel および Apache Camel JMS コンポーネントにおける、信頼されないデータの逆シリアル化の脆弱性。camel-jms の JmsBinding.extractBodyFromJms() - および camel-sjms の同等の JmsBinding - は、mapJmsMessage オプションが有効(デフォルト)で Camel が JMS コンシューマーとして動作する場合、受信した JMS ObjectMessage のペイロードを jakarta.jms.ObjectMessage.getObject() 経由で逆シリアル化します。CVE-2026-40860 のハードニングにより、デフォルトの許可リスト java.**;javax.**;org.apache.camel.**;!* の外部にあるクラスを拒否する逆シリアル化後のクラスチェックが追加されました。しかし、org.apache.camel.support.DefaultExchangeHolder 自体は許可リストに含まれる org.apache.camel.** 名前空間に存在するため、トップレベルのオブジェクトが DefaultExchangeHolder である ObjectMessage はチェックを通過します。受信側はその後、transferExchange オプションが有効であることを要求せずに DefaultExchangeHolder.unmarshal() を呼び出します - 送信側は ObjectMessage と transferExchange の処理をゲートしているのに対し、受信側はゲートしていないという非対称な信頼境界です - これにより、ホルダーの null でないすべてのフィールドが Exchange に書き込まれます:メッセージボディ、IN および OUT ヘッダー、エクスチェンジプロパティ、変数、エクスチェンジ ID、および例外。影響を受ける Camel アプリケーションが消費するキューまたはトピックに ObjectMessage を公開できる攻撃者は、逆シリアル化ガジェットチェーンを必要とせずに、普遍的に信頼される java.lang および java.util 型のみを使用して任意の Exchange 状態を注入し、ルーティングやヘッダー、エクスチェンジプロパティ、エラーハンドリングを操作できます。同じ処理は camel-sjms および camel-sjms2、ならびに JmsComponent と JmsBinding 上に構築された JMS ファミリーコンポーネント(camel-amqp、camel-activemq、camel-activemq6)にも適用されます。これは CVE-2026-40860 の修正の欠陥ではなく、そのバイパスです。この問題は Apache Camel に影響します:3.0.0 から 4.14.8 未満、4.15.0 から 4.18.3 未満、4.19.0 から 4.21.0 未満。ユーザーは問題を修正するバージョン 4.21.0 へのアップグレードを推奨されます。4.14.x LTS リリースストリームを使用している場合は、4.14.8 へのアップグレードが推奨されます。4.18.x リリースストリームを使用している場合は、4.18.3 へのアップグレードが推奨されます。アップグレード後、JMS ObjectMessage の処理は camel-jms、camel-sjms、および JMS ファミリーコンポーネントでデフォルトで無効になります(新しい objectMessageEnabled オプションはコンポーネントおよびエンドポイントレベルでデフォルトで false になります)。そのため、DefaultExchangeHolder ペイロードを含む受信 ObjectMessage は、オプションが明示的に有効にされない限り逆シリアル化されません。objectMessageEnabled=true は、消費される JMS 宛先が信頼できるプロデューサーのみによって供給される場合にのみ設定してください。直ちにアップグレードできないデプロイメントでは、JMS ブローカーの認可を介して Camel が消費するキューおよびトピックへの公開アクセスを信頼できるプロデューサーに制限し、ObjectMessage ボディを信頼できないネットワークにマッピングする JMS コンシューマーを公開しないでください。JMS プロバイダーの逆シリアル化許可リストは、細工されたペイロードが普遍的に信頼されるクラスのみを使用するため、この特定のバイパスを緩和しません。
ソース
1責任ある使用
脆弱性情報は、自分が所有しているシステム、またはテストを許可されているシステムでのみ使用してください。 Kitploit は公開研究メタデータにリンクしており、エクスプロイト コードや悪意のあるペイロードは保存しません。