脆弱性情報(JVN)
脆弱性情報(JVN)検索・一覧
JVN(IPA/JPCERT/CC 提供)の脆弱性情報 289,756 件を、製品・ベンダ・脆弱性タイプ(CWE)で 全文検索し、深刻度(CVSS)で絞り込めます。発表日の新しい順。各タイトルから詳細(CVSS内訳・関連脆弱性)へ。
直近3年 の検索結果:761–800 件目を表示(ページ 20)
深刻度は CVSS(共通脆弱性評価システム・0〜10 のスコア)に基づく区分:Critical 9.0以上/High 7.0〜8.9/Medium 4.0〜6.9/Low 0.1〜3.9。
Apache Camel の Docling コンポーネントにおいて、コマンド内の引数区切り文字の不適切な無害化(「引数インジェクション」)に関する脆弱性があります。camel-docling コンポーネントは、DoclingProducer 内で引数リストを組み立て、java.lang.ProcessBuilder を介して外部の `docling` コマンドラインツールを呼び出します。`CamelDoclingCustomArguments` エクスチェンジヘッダー(List<String>)を通じて渡されるカスタム CLI 引数は、この引数リストに十分な検証をせずに追加されていました。元の実装は、禁止フラグのデナイリストに依存し、リテラルの `../` シーケンスを含むパス値のみを拒否していました。その結果、外部から影響を受けたデータを `CamelDoclingCustomArguments` ヘッダー(または呼び出しに使用されるパスを含むヘッダー)に渡す Camel ルートは、プロデューサーがサブプロセスに未認識または意図しない `docling` CLI フラグを渡したり、リテラル `../` チェックで検出されない走査シーケンスにより意図しないディレクトリの外を指すパスのような引数値を供給したりする可能性があります。Camel 自体がこれらの値から `docling` 呼び出しを構築するため、コンポーネントがそれらを制限する責任があります。弱い検証のために CLI 引数インジェクションおよび外部ツールに渡される引数でのディレクトリトラバーサルが可能でした。呼び出しは ProcessBuilder のリスト形式を使用しているため、シェルは引数値を解釈せず、シェルのメタ文字による OS コマンドインジェクションは不可能です。修正により追加されたメタ文字拒否は多層防御の一環となっています。本問題は Apache Camel のバージョン 4.15.0 から 4.18.3 未満に影響します。ユーザーには、CAMEL-23212 の修正を含むリリースへのアップグレードを推奨します。メインラインでは Apache Camel 4.19.0 以降(4.20.0 などの後続リリース)に修正が含まれており、4.18.x LTS 系列のユーザーは 4.18.3 へのアップグレードが必要です。修正はデナイリストを、認識済み `docling` CLI フラグの厳格なホワイトリストに置き換え、未認識のフラグや出力ディレクトリ関連のプロデューサー管理フラグを拒否します。また、防御的に引数値のシェルメタ文字を拒否し、Path.normalize() でパスらしい値を正規化してから検証し、リテラルの `../` チェックをすり抜ける走査シーケンスを検出します。多層防御のために、ルート作成者は信頼できないメッセージ内容を `CamelDoclingCustomArguments` ヘッダーおよびパスを含むヘッダーにマッピングすることを避け、信頼できないプロデューサーから届いたメッセージから Camel 内部ヘッダーを除去すべきです。
Dell PowerProtect Data Domain のバージョン 7.7.1.0 から 8.7、LTS2026 リリースのバージョン 8.6.1.0 から 8.6.1.10、LTS2025 リリースのバージョン 8.3.1.0 から 8.3.1.30、LTS2024 リリースのバージョン 7.13.1.0 から 7.13.1.70 に格納型クロスサイトスクリプティングの脆弱性が存在します。認証されていない攻撃者がリモートアクセスを介してこの脆弱性を悪用する可能性があります。悪用された場合、情報漏洩やセッションの乗っ取り、またはクライアントサイドリクエストフォージェリが発生する恐れがあります。
Apache OpenNLP の SvmDoccatModel における信頼されていない Java デシリアライズの脆弱性影響を受けるバージョン: 3.0.0-M4 未満(libsvm ドキュメントカテゴリモジュール;OPENNLP-1808 で導入され、3.x 系列にのみ存在します)説明: SvmDoccatModel.deserialize(InputStream) は攻撃者が制御する java.io.ObjectInputStream を読み込み、ObjectInputFilter が設定されていない状態で readObject() を呼び出します。ObjectInputStream はストリーム内で参照されるすべてのクラスのオブジェクトを、SvmDoccatModel にキャストする前に具現化します。そのため、readObject() の後のキャストは、外部のオブジェクトグラフが完全にデシリアライズされた後に実行されます。もし利用者のクラスパスに Java のデシリアライズ用ガジェットチェーンが存在する場合、deserialize() に渡された細工されたペイロードによって JVM 上で任意のコードが実行される恐れがあります。Apache OpenNLP 自体は既知のガジェットチェーンを含んでいませんが、脆弱なトランジティブ依存関係と共に libsvm モジュールを組み込んだ下流のアプリケーションには現実的なリスクがあります。このメソッドは public かつ static であるため、呼び出し元は直接信頼されていないストリームを渡すことが可能です。実質的な影響としては、信頼されていないまたは半信頼の出所から読み込まれた SvmDoccatModel インスタンスに対してリモートコード実行が可能になることです。緩和策: 3.x 系列の利用者は 3.0.0-M4 へアップグレードしてください。すぐにアップグレードできない場合は、すべてのシリアライズされた SvmDoccatModel ストリームを信頼されていない入力として扱い、その出所が検証されていない限り、エンドユーザーから提供されたストリームや第三者のソースから取得したストリームに対して SvmDoccatModel.deserialize() を呼び出すことを避けてください。
CoderはTerraformを介して組織がリモート開発環境をプロビジョニングできるようにします。バージョン2.29.7および2.30.2より前のバージョンでは、`dotfiles`レジストリモジュールが無検証のユーザー入力をシェルコマンドに渡しており、プロビジョニングされたワークスペース内で任意のコードを実行できました。細工された`dotfiles_uri`の値(例えば、`$(...)`のようなシェルコマンド置換を含むもの)を提供した任意のユーザーは、自身のワークスペースでコマンドを実行することが可能でした。Create Workspaceページの`mode=auto`ディープリンクは、これをワンクリック攻撃に拡大させました。攻撃者は`param.dotfiles_uri`を事前に入力したURLを作成し、ユーザーの明示的な確認なしに、攻撃者が制御する値でワークスペースを静かにプロビジョニングできる状態でした。バージョン2.29.7および2.30.2では、dotfilesモジュールに特別な文字を含むURIやユーザー名を拒否する入力検証が追加され、不安全な`eval`や`sh -c`の使用は削除されました。これにより、コマンドインジェクションは発生源で除去されました。
Coderは、組織がTerraformを通じてリモート開発環境をプロビジョニングできるようにするツールです。バージョン2.24.5、2.29.13、2.30.8、2.31.12、2.32.2、および2.33.3より前のバージョンには、Azureインスタンス識別エンドポイント(`POST /api/v2/workspaceagents/azure-instance-identity`)を介した認証されていないセミブラインドなサーバーサイドリクエストフォージェリ(SSRF)の脆弱性が存在します。外部の攻撃者は、細工されたPKCS#7署名を送信することで、Coderサーバーに任意の内部または外部ホストに対してHTTP GETリクエストを発行させることが可能です。サーバーはターゲットのレスポンスボディを返しませんが、APIレスポンス内のエラーメッセージによって、ターゲットが到達可能かどうかおよび発生した障害の内容を判別できます。バージョン2.24.5、2.29.13、2.30.8、2.31.12、2.32.2、および2.33.3ではこの問題が修正されています。回避策として、AzureのID認証機構を使用していない場合は、対応するエンドポイント(`/api/v2/workspaceagents/azure-instance-identity`)へのアクセスをingressファイアウォールやプロキシのACLで制限してください。
2026年07月07日(現地時間)、米国CISAがCISA ICS Advisory / ICS Medical Advisoryを公表しました。 新規:7件 ・ICSA-26-188-01: Hydro-Québec Le Circuit Electrique charging station backend ・ICSA-26-188-02: Hitachi Energy PROMOD V ・ICSA-26-188-03: Hitachi Energy e-mesh EMS ・ICSA-26-188-04: Siemens Mendix Studio Pro ・ICSA-26-188-05: Siemens SINEC OS ・ICSA-26-188-06: Labcenter Proteus 9 ・ICSA-26-188-07: Digi International PortServer TS, Digi One SP IA
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.**;!*')に上書きすることを推奨します。
OP-TEEは、ArmのCortex-Aコア上で動作する非セキュアなLinuxカーネルの補完として設計された信頼実行環境(TEE)であり、TrustZone技術を利用しています。バージョン3.3.0から4.11.0未満の間、OP-TEEの共有メモリのクリーンアップロジックにリソースリークが存在していました。これは、`core/tee/entry_std.c`内の関数`cleanup_shm_refs()`が、パラメータ属性に必要なビットマスク(`OPTEE_MSG_ATTR_TYPE_MASK`)を適用しなかったためです。通常世界から呼び出される非連続メモリパラメータを処理する際に、システムは内部のswitch文で属性タイプの一致に失敗し、必要なmobj_put()呼び出しをスキップしてしまいます。これにより、`mobj_reg_shm`オブジェクトの参照リークが持続的に発生し、内部リスト上で参照カウントがぶら下がった状態になってしまいます。この問題は、非FF-A構成で非連続かつ非セキュアな共有メモリをサポートする環境に影響を及ぼします。時間の経過とともに、これらの累積したリークがセキュアワールドのヒープを徐々に消費し、信頼済みアプリケーションの処理能力を低下させ、最終的には回復のために再起動が必要となります。バージョン4.11.0にて修正パッチが含まれており、既知の回避策は存在しません。
Apache CamelのHazelcastコンポーネントに存在する信頼されていないデータの逆シリアライズ脆弱性について説明します。camel-hazelcastコンポーネントは、Javaの逆シリアライズフィルターを適用しないデフォルト設定でHazelcastインスタンスを作成・管理しています。Camelが自身でHazelcastの設定を構築する場合、つまりユーザーが提供するHazelcastInstance、hazelcastConfigUri、または参照されるConfig beanが存在しない場合には、HazelcastのJavaSerializationFilterConfigもCamel側のObjectInputFilterも設定されません。そのため、Hazelcastクラスタープロトコルを介して受信したオブジェクトは、Camelで処理される前にHazelcastのシリアライズレイヤー(ObjectInputStream.readObject)内で逆シリアライズされます。Hazelcastクラスタに参加またはアクセス可能な攻撃者は、細工されたシリアライズ済みJavaオブジェクトを公開することが可能であり、それがすべてのCamelノード上で逆シリアライズされることでリモートコード実行に至る可能性があります。この脆弱性はデフォルトで存在し、特別なエンドポイント設定を必要としません。hazelcast-topic、hazelcast-queue、hazelcast-seda、hazelcast-map、hazelcast-multimap、hazelcast-replicatedmap、hazelcast-list、hazelcast-setを使用する任意のルート、およびHazelcastAggregationRepositoryとHazelcastIdempotentRepositoryは、Camelのデフォルト設定によって管理されるインスタンスが作成される場合に影響を受けます。本問題はApache Camelのバージョン4.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へのアップグレードを推奨します。修正内容としては、Camelが自身のデフォルト設定から作成するインスタンスに対してデフォルトのHazelcast JavaSerializationFilterConfigを適用し、クラス名プレフィックス「java.」、「javax.」、「org.apache.camel.」をホワイトリストに入れ、「java.net.」をブラックリストに設定しています。ただし、ユーザーが提供するConfigまたはHazelcastInstanceには影響を与えません。すぐにアップグレードできない環境では、Hazelcastインスタンス上で逆シリアライズフィルター(Hazelcast JavaSerializationFilterConfig、もしくはJVM全体のシステムプロパティ -Djdk.serialFilter=!java.net.**;java.**;javax.**;org.apache.camel.**;!*)を設定し、さらにHazelcastクラスタ認証およびTLSを有効化して、クラスタへアクセス可能なユーザーを制限してください。
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ヘッダー、Exchangeのプロパティ、変数、Exchange ID、および例外です。攻撃者は影響を受けるCamelアプリケーションで消費されるキューやトピックにObjectMessageを送信できれば、任意のExchange状態を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へのアップグレードを推奨します。アップグレード後、camel-jms、camel-sjms、およびJMS系コンポーネントではJMS ObjectMessageの取り扱いはデフォルトで無効化されます(objectMessageEnabledという新しいオプションがコンポーネントおよびエンドポイントレベルでデフォルトfalseです)。したがって、DefaultExchangeHolderペイロードを含む受信ObjectMessageは、明示的にオプションを有効にしない限りデシリアライズされません。objectMessageEnabled=trueは、消費しているJMSデスティネーションが信頼されたプロデューサーのみから供給されている場合にのみ設定してください。すぐにアップグレードできない場合は、JMSブローカーの認可を用いてCamelが消費するキューやトピックへのパブリッシュアクセスを信頼できるプロデューサーに制限し、ObjectMessageボディをマッピングするJMSコンシューマを信頼されていないネットワークに公開しないことを推奨します。なお、JMSプロバイダーのデシリアライズ許可リストでは本特定の回避を軽減できません。なぜなら、悪意あるペイロードは普遍的に信頼されたクラスのみを使用しているためです。
Apache Camel PQCコンポーネントにおける信頼されていないデータのデシリアライズ脆弱性について説明します。camel-pqcコンポーネントは、プラガブルなKeyLifecycleManagerの実装を通じてポスト量子鍵メタデータ(KeyMetadata)を永続化しています。AwsSecretsManagerKeyLifecycleManager.deserializeMetadata()は、設定されたAWS Secrets ManagerのシークレットからそのメタデータをBase64デコードし、保存された値をjava.io.ObjectInputStream.readObject()でデシリアライズします。しかし、ObjectInputFilterやクラスの許可リストが存在せず、readObject()が返る前にKeyMetadataへのキャストは行われません。したがって、作成されたオブジェクトのreadObject()の副作用は型チェックより先に実行されます。このメタデータを保持するAWS Secrets Managerシークレットへの書き込み権限(対象シークレットに対するsecretsmanager:PutSecretValue)を持つ主体は、通常のキーライフサイクル操作中にデシリアライズされる細工されたシリアライズオブジェクトを保存でき、その結果、キー管理を行うアプリケーションのコンテキストでコードが実行される可能性があります。これは、CVE-2026-46590と同じ根本的欠陥に起因し、同じコードパスで発生しており、同じ修正によって対処されています。本CVEはHashiCorp Vaultおよびファイルベースの関連マネージャーも対象としており、両者ともCVE-2026-40048(CAMEL-23200)の不完全な修正に対する追補となっています。この問題はApache Camelのバージョン4.18.0以降4.18.3未満、4.19.0以降4.21.0未満に影響を与えます。ユーザーには、本問題を修正したバージョン4.21.0へのアップグレードを推奨します。また、4.18.xのLTSリリースシリーズを利用している場合は、4.18.3へのアップグレードが推奨されます。直ちにアップグレードできない環境では、camel-pqcの鍵メタデータを保持するAWS Secrets Managerのシークレットへの書き込みアクセスを、アプリケーション自身のIDのみがsecretsmanager:PutSecretValue権限を持つように制限し(最小権限のIAM設定を適用し)、PQC鍵素材を信頼度の低い主体が書き込み可能なデータから分離したシークレットに保管することが推奨されます。
OP-TEEは、Arm Cortex-Aコア上で動作する非セキュアなLinuxカーネルの補助として設計されたトラステッド・エクゼキューション・環境(TEE)であり、TrustZone技術を利用しています。バージョン3.20.0から4.11.0より前のバージョンにおいて、OP-TEEのサブキーのロールバック保護に脆弱性が存在します。これは、サブキーのバージョン管理データがトラステッドアプリケーション(TA)の読み込み処理中に伝播されないためであり、その結果、取り消された古いサブキーを使用できてしまいます。`core/crypto/signed_hdr.c`の`shdr_load_pub_key()`関数はサブキーヘッダーを解析しますが、`subkey_version`をランタイムの`shdr_pub_key`構造体に割り当てていません。そのため、`key->version`フィールドはヘッダーで指定されたバージョンに関係なく常にゼロのままです。さらに、`core/kernel/ree_fs_ta.c`の`ree_fs_ta_open()`が`check_update_version()`を呼び出す際に、このゼロのバージョンがロールバックデータベースに渡されます。データベースは記録すべき非ゼロのバージョンを受け取らないため更新されず、ロールバックチェックが事実上無効となってしまい、ダウングレードされたサブキーのチェーンで署名されたTAの読み込みに成功してしまいます。この脆弱性は、サブキーベースの署名チェーンを用いてTA認証を行うOP-TEEのメインライン構成に影響を及ぼします。バージョン4.11.0で修正パッチが含まれており、既知の回避策は存在しません。
Microsoft Edge(Chromiumベース)における重要な情報のユーザーインターフェース(UI)の誤表示により、不正な攻撃者がネットワーク上でなりすましを行うことが可能となります。
Microsoft Edge(Chromiumベース)になりすましの脆弱性があります。
Apache Camel ElasticSearch Rest Clientの不適切な入力検証およびユーザー制御キーによる認可バイパスの脆弱性についてご説明します。camel-elasticsearch-rest-clientコンポーネントは、その動作を制御するために複数のExchangeヘッダー(SEARCH_QUERY(高度なクエリボディ)、OPERATION(実行するElasticsearch操作)、INDEX_NAME、INDEX_SETTINGS、ID)を読み取ります。これらのヘッダー定数の文字列値はElasticSearchRestClientConstantに定義されており、他のすべてのCamelコンポーネントが使用する「Camel」接頭辞付きの名前(例:CamelSqlQuery、CamelMongoDbCriteria、CamelCqlQuery)ではなく、単なる接頭辞なしの名前('SEARCH_QUERY'、'OPERATION'、'INDEX_NAME'、'INDEX_SETTINGS'、'ID')となっています。Camelの受信HTTPヘッダーフィルターであるHttpHeaderFilterStrategyは、「Camel」または「camel」で始まるヘッダー名のみをブロックします。Elasticsearchのヘッダー名はその接頭辞を持たないため、受信フィルターを通過してしまいます。Camelルートがelasticsearch-rest-clientプロデューサの前にHTTPエントリポイント(例:platform-http)を公開している場合、信頼されていないHTTPクライアントはこれらのヘッダーを直接リクエストに設定し、ルート作成者が構成したクエリや操作を上書きできてしまいます。例えば、インデックス内のすべてのドキュメントの読み取り(match_allクエリを伴うSEARCH_QUERY)、ドキュメントの削除(OPERATIONをDeleteに設定しIDを指定)、選択されたフィールドの持ち出しなどが可能です。認証情報は不要であり、プロデューサはこれらヘッダーを無条件に読み取っています。この問題はApache Camelの以下のバージョンに影響します:4.3.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へのアップグレードを推奨します。修正ではcamel-elasticsearch-rest-clientのExchangeヘッダー定数の文字列値(ID、SEARCH_QUERY、INDEX_SETTINGS、INDEX_NAME、OPERATION)に「Camel」接頭辞(CamelElasticsearchId、CamelElasticsearchSearchQuery、CamelElasticsearchIndexSettings、CamelElasticsearchIndexName、CamelElasticsearchOperation)を付加し、HttpHeaderFilterStrategyの受信フィルタでブロックされるようにしました。Javaのフィールド名は変更していません。すぐにアップグレードできない環境では、elasticsearch-rest-clientエンドポイントの前で、信頼されていない受信メッセージから影響を受けるヘッダー('SEARCH_QUERY'、'OPERATION'、'INDEX_NAME'、'INDEX_SETTINGS'、'ID')を削除するか、これらの名前をブロックするカスタムのHeaderFilterStrategyを適用してください。
Apache Camel Cometdコンポーネントにおける不適切な入力検証の脆弱性について説明します。camel-cometdコンポーネントは、Bayeux(CometD)から受信したメッセージヘッダーにHeaderFilterStrategyを適用せずにCamel Exchangeにマッピングします。CometdBinding.populateExchangeFromMessageは、CometDクライアントから提供されたext.CamelHeadersマップ全体を直接Camelメッセージ(message.setHeaders)にコピーするため、CamelHttpUri、CamelFileName、CamelJmsDestinationNameのようなCamel内部制御ヘッダーを含むあらゆるヘッダー名が変更されることなく受け入れられます。デフォルトでCometdComponentはBayeux SecurityPolicyをインストールしないため、Bayeuxハンドシェイクを完了できるクライアントは認証なしでこのメッセージを公開できます。その結果、攻撃者はルート内の下流プロデューサの動作に影響を与える任意のCamel制御ヘッダーを注入可能です(例:HTTPプロデューサのリダイレクト、ファイル名の変更、JMS宛先の上書き)。注入されたヘッダーは内部のdirect、seda、vmホップ間でも持続します。具体的な下流への影響はルートで使用されるプロデューサによって異なります。この問題はApache Camelのバージョン4.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へアップグレードすることを推奨します。修正はcamel-cometdバインディングにHeaderFilterStrategyを実装し(コード上の長期間のTODO)、インバウンドマッピングで大文字小文字を区別せずCamelヘッダー名前空間をフィルタリングすることで、クライアントから提供されるCamel* / camel*ヘッダーがExchangeにコピーされなくなるようにしています。即時アップグレードできない環境では、ルート開始時にremoveHeaders('Camel*')およびremoveHeaders('camel*')などを使用して、下流プロデューサに届く前に受信したCometDメッセージからCamel制御ヘッダーを除去し、さらにCometdComponentに明示的なBayeux SecurityPolicyを設定して認証済みクライアントのみがメッセージを公開できるようにしてください。
Apache CamelのKeycloakコンポーネントにおけるセッション有効期限が不十分である脆弱性です。camel-keycloakのセキュリティヘルパーであるKeycloakSecurityHelper.parseAndVerifyAccessTokenは、withChecks(...)メソッドを用いてKeycloakのTokenVerifierを構築しますが、設定されているのはsubject-existsチェックとrealm-URL(発行者)チェックのみです。TokenVerifier.withChecks(...)は初期状態で空のチェックリストにチェックを追加していく方式であり、withDefaultChecks()が呼ばれない限り上流のデフォルトチェックは適用されません。そのため、トークンのexp(有効期限)およびnbf(使用開始前)クレームを検証する組み込みのIS_ACTIVE述語が適用されません。結果として、このヘルパーはトークンの署名、subjectおよびissuerは検証しますが、トークンの有効期間を制御せず、有効期限切れまたはまだ有効でないアクセストークンを有効と認めてしまいます。したがって、このヘルパーを使用してインバウンドリクエストを認証するルートは、本来の有効期間外のアクセストークンを受け入れてしまう可能性があります。影響を受けるApache Camelのバージョンは4.18.0から4.18.3未満、4.19.0から4.21.0未満です。ユーザーにはこの問題を修正した4.21.0へのアップグレードを推奨します。4.18.x系のユーザーには4.18.3へのアップグレードを推奨します。修正により、KeycloakSecurityHelper.parseAndVerifyAccessTokenはTokenVerifier.IS_ACTIVEチェックを含むようになり、有効期限切れまたはまだ有効でないアクセストークンを拒否し、ヘルパーの挙動がKeycloakのデフォルトチェックセットと整合します。即時アップグレードが困難な環境では、ヘルパーの外側でトークンの有効期限を強制してください。例えば、ルート上でアクセストークンのexp/nbfクレームを検証し、Keycloakのアクセストークン有効期間を短く設定し、上流のゲートウェイやリソースサーバーでもトークンの有効期間検証を行うことを推奨します。
Apache Camel AWS2-SQS コンポーネントにおける不適切な入力検証の脆弱性について説明します。camel-aws2-sqs コンポーネントは、コンポーネント固有の HeaderFilterStrategy を通じてインバウンドメッセージ属性を Camel Exchange にマップしています。Sqs2HeaderFilterStrategy はアウトバウンドフィルター(setOutFilterPattern、Camel*、breadcrumbId、および org.apache.camel.* ヘッダーがブローカーへ書き込まれるのをブロックするもの)のみを設定しており、インバウンドフィルターは設定していませんでした。その結果、Sqs2Consumer が各 SQS の MessageAttribute を HeaderFilterStrategy.applyFilterToExternalHeaders 経由で Exchange にコピーする際に、DefaultHeaderFilterStrategy はインバウンドルールを適用せず、すべてのヘッダー名をフィルター対象外とみなし、CamelHttpUri、CamelFileName、CamelSqlQuery などの Camel 内部制御ヘッダーを変更せずに Camel メッセージにコピーしてしまいます。したがって、消費される SQS キューへメッセージを送信できる権限を持つ主体(例えばクロスアカウントの送信者や、sqs:SendMessage 権限を持つより権限の低い同アカウント内のコンポーネント)は、ルート内の下流のプロデューサの挙動に影響を与える任意の Camel 制御ヘッダーを設定できる可能性があります(例:HTTP プロデューサのリダイレクト、ファイル名の変更、クエリの上書き)。注入されたヘッダーは、内部の direct、seda、vm ホップ間でも持続します。具体的な下流への影響はルートが使用するプロデューサに依存します。本問題は Apache Camel のバージョン 4.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 へのアップグレードを推奨します。修正内容は、インバウンドマッピング時に大文字・小文字を問わず Camel ヘッダー名前空間をフィルタリングするインバウンド HeaderFilterStrategy ルールを Sqs2HeaderFilterStrategy に追加し、送信者が指定した Camel* および camel* ヘッダーが Exchange にコピーされないようにしたものです。すぐにアップグレードできない環境では、ルートの開始時に removeHeaders('Camel*') と removeHeaders('camel*') を使用してインバウンドメッセージから Camel 制御ヘッダーを除去し、さらに消費される SQS キューへ送信可能な主体を最小権限の sqs:SendMessage 権限で制限することを推奨します。
Apache Camel NATSコンポーネントにおける不適切な入力検証の脆弱性です。camel-natsコンポーネントは、受信したNATSメッセージのヘッダーをCamel Exchangeにマッピングしますが、headerFilterStrategyがinboundルールとして設定されていない場合、新規のDefaultHeaderFilterStrategy()がデフォルトで設定されていました(NatsConfiguration)。inFilter、inFilterPattern、inFilterStartsWithが設定されていない場合、DefaultHeaderFilterStrategy.applyFilterToExternalHeadersはすべてのヘッダー名に対してフィルタリングを行わないため、NatsConsumerはCamelHttpUri、CamelFileName、CamelSqlQueryなどのCamel内部制御ヘッダーを含むすべてのNATSメッセージヘッダーを変更せずにCamelメッセージへコピーしてしまいます。したがって、対象のNATSサブジェクトに対して公開可能なクライアントは、ルート内の下流のプロデューサの動作に影響を与える任意のCamel制御ヘッダーを注入できます(例:HTTPプロデューサのリダイレクト、ファイル名の変更、クエリの上書きなど)。注入されたヘッダーは、内部のdirect、seda、vm経由でも引き継がれます。具体的な影響は、ルートで使用されるプロデューサによって異なります。NATSメッセージヘッダーはNATS 2.2以降が必要であり、NATSサーバーが認証なしで構成された場合(NATSサーバーのデフォルト設定)、認証情報なしで問題に到達可能です。この問題はApache Camelの4.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へアップグレードしてください。修正ではcamel-natsのデフォルトを専用のNatsHeaderFilterStrategyに変更し、受信マッピング時にCamelヘッダー名前空間を大文字・小文字を区別せずにフィルタリングすることで、クライアントから提供されたCamel* / camel*ヘッダーがExchangeにコピーされなくなります。すぐにアップグレードできない環境では、受信したNATSメッセージからCamel制御ヘッダーを下流のプロデューサに到達する前に削除すること(例:ルート開始時にremoveHeaders('Camel*')およびremoveHeaders('camel*')を実行)およびNATSサーバーの認証を有効化して信頼されたクライアントのみが対象サブジェクトに公開できるようにすることを推奨します。
Apache CamelのSolrコンポーネントにおいて、下流コンポーネントで利用される出力中の特殊要素の不適切な無害化(「インジェクション」)、不適切な入力検証、サーバーサイドリクエストフォージェリ(SSRF)脆弱性が存在します。camel-solrプロデューサは、SolrParam.プレフィックスで始まるExchangeメッセージヘッダーをSolrリクエストのパラメータに、SolrField.プレフィックスで始まるヘッダーをインデックスされたSolrドキュメントのフィールドにコピーします。これらのプレフィックス定数(SolrConstants.HEADER_PARAM_PREFIX / HEADER_FIELD_PREFIX)はSolrParam. / SolrField.というプレーン文字列です。これらの名前はCamel / camelプレフィックスで始まらないため、HTTP境界でCamelヘッダ名前空間のみをブロックするHttpHeaderFilterStrategyは、これらをインバウンドHTTPリクエストからExchangeへ通過させてしまいます。HTTPコンシューマ(例:platform-http)をsolr:プロデューサに橋渡しするルートでは、任意のHTTPクライアントがSolrParam.*ヘッダーを設定して任意のSolrリクエストパラメータを注入できます。これにはシャードやstream.urlといったパラメータも含まれ、これによりSolrサーバが攻撃者指定のURL(内部サービスやクラウドメタデータエンドポイントなど)へサーバーサイドリクエストを発行させることが可能になります(サーバーサイドリクエストフォージェリ)。また、qtパラメータを使って管理用リクエストハンドラにアクセスできる場合もあります。同様にSolrField.*ヘッダーの設定により、インデックスされたドキュメントに任意のフィールドを注入可能です。認証されていないブリッジングコンシューマの場合は認証情報が不要です。影響を受けるバージョンはApache Camelの4.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へのアップグレードが推奨されます。アップグレード後は、Solrパラメータやフィールドを生のヘッダープレフィックスで設定するルートにおいて、SolrParam. / SolrField.の代わりにCamelSolrParam. / CamelSolrField.を使用する必要があります。すぐにアップグレードできない環境では、未信頼の入力からsolr:プロデューサに到達する前にSolrParam.*およびSolrField.*ヘッダーを削除し、信頼できるソースから必要なSolrパラメータとフィールドをルート内で設定してください。
Apache CamelのCamel Mongodb Gridfsコンポーネントにおいて、不適切な入力検証および不適切なアクセス制御の脆弱性が存在します。camel-mongodb-gridfsプロデューサーは、エンドポイントのoperationパラメーターが設定されていない場合(デフォルト)に、gridfs.operation Exchangeヘッダーから実行するGridFS操作を選択します。制御ヘッダーの定数(GridFsConstants.GRIDFS_OPERATION、GRIDFS_OBJECT_ID、GRIDFS_METADATA、GRIDFS_CHUNKSIZE、GRIDFS_FILE_ID_PRODUCED)は、それぞれ単純な文字列であるgridfs.operation、gridfs.objectid、gridfs.metadata、gridfs.chunksize、gridfs.fileidとなっていました。これらの名前はCamel/camelプレフィックスで始まらないため、HTTP境界上でCamelヘッダーの名前空間のみをブロックするHttpHeaderFilterStrategyは、これらのヘッダーを受信したHTTPリクエストからExchangeにそのまま通過させていました。HTTPコンシューマ(例:platform-http)をmongodb-gridfs:プロデューサーに明示的なoperationなしでブリッジするルートでは、任意のHTTPクライアントがgridfs.operationヘッダーを設定してルートの意図した操作を上書きできました。例えば、ファイルアップロードからremove(攻撃者提供のgridfs.objectidで指定されたファイルの削除)、listAll(バケット内の全ファイル列挙)、findOne(ファイル読み取り)への切り替えが可能であり、gridfs.metadata値をMongoDBドキュメントとして解析することでNoSQLオペレータインジェクションを可能にしました。ブリッジされるコンシューマが認証されていない場合、資格情報は必要ありません。この問題はApache Camelのバージョン4.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へのアップグレードを推奨します。アップグレード後は、GridFS操作やメタデータを生のヘッダー名で制御しているルートにおいて、gridfs.*の代わりにCamelGridFsOperation、CamelGridFsObjectId、CamelGridFsMetadata、CamelGridFsChunkSize、CamelGridFsFileIdを使用する必要があります。すぐにアップグレードできない場合は、mongodb-gridfs:エンドポイントで明示的なoperationを設定し、操作をヘッダーから取得しないようにし、信頼できない入口からのgridfs.*ヘッダーをプロデューサーに渡す前に除去してください。
Apache CamelのDNSコンポーネントにおける不適切な入力検証およびサーバーサイドリクエストフォージェリ(SSRF)の脆弱性について説明します。camel-dnsプロデューサは、DNS操作のパラメータ(クエリするリゾルバ、名前またはドメイン、レコードタイプとクラス、検索語)をExchangeメッセージヘッダから読み取ります。これらの定数値(DnsConstants.DNS_SERVER、DNS_NAME、DNS_DOMAIN、DNS_TYPE、DNS_CLASS、TERM)は、それぞれ文字列のdns.server、dns.name、dns.domain、dns.type、dns.class、およびtermに対応しています。これらの名前はCamelまたはcamel接頭辞で始まらないため、HTTP境界上でCamelヘッダ名前空間のみをブロックするHttpHeaderFilterStrategyは、これらのヘッダをインバウンドHTTPリクエストから直接Exchangeに通過させてしまいます。HTTPコンシューマ(例:platform-http)をdns:プロデューサにブリッジするルートでは、任意のHTTPクライアントがdns.serverヘッダを設定し、攻撃者が制御するDNSサーバーを指すSimpleResolverをdigプロデューサに構築させることが可能です。これにより、DNS経由のサーバーサイドリクエストフォージェリが発生し、攻撃者は問い合わせられた名前を観察したり、改ざんされた応答を返したりできます。また、dns.nameやdns.domainヘッダを設定して任意の内部ホスト名を解決し、それらの存在を開示(内部ネットワーク偵察)することも可能です。ブリッジされたコンシューマが認証されていない場合は認証情報が不要となります。この問題は以下のApache Camelのバージョンに影響します:4.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へのアップグレードを推奨します。アップグレード後は、dns.*やtermの生ヘッダ名ではなく、CamelDnsServer、CamelDnsName、CamelDnsDomain、CamelDnsType、CamelDnsClass、CamelDnsTermを使用してDNS操作を行うルートを構成してください。すぐにアップグレードできない環境では、dns:プロデューサの前に信頼できない入力からdns.*およびtermヘッダを削除し、信頼できるソースからDNSサーバーと検索パラメータをルート内で設定することを推奨します。
Apache CamelのJIRAコンポーネントには、不適切な入力検証およびユーザー制御キーを通じた認可回避の脆弱性が存在します。camel-jiraプロデューサーは、操作パラメーター(Issue Key、Project Key、Transition ID、Summary、Type、Assignee、Components、Watchers、Link Type、Work-log Minutesなど)をExchangeメッセージのヘッダーから読み取ります。JiraConstantsで定義されたヘッダー定数(例:ISSUE_KEY=IssueKey、ISSUE_PROJECT_KEY=ProjectKey、ISSUE_TRANSITION_ID=IssueTransitionId、LINK_TYPE=linkType)は、Camelの接頭辞が付いていないプレーンな値を使用していました。これらの名前はCamelまたはcamelで始まらないため、HTTP境界でCamelヘッダー名前空間のみをブロックするHttpHeaderFilterStrategyによってインバウンドのHTTPリクエストから直接Exchangeへ通過してしまいます。HTTPコンシューマー(例:platform-http)をjira:プロデューサーにブリッジするルートでは、任意のHTTPクライアントがこれらのヘッダーを提供でき、その結果ルートが意図した値を上書きできます。これにより、エンドポイントのサービスアカウント資格情報を使って設定されたJIRAインスタンスに対し、任意の課題の削除や状態遷移(IssueKey / IssueTransitionId経由)、異なるプロジェクトでの課題作成(ProjectKey経由)、課題フィールドの変更、ウォッチャーの追加・削除、作業ログの記録などの操作を実行可能となります。これらの操作は、設定されたサービスアカウントの権限によって制限されています。ブリッジングされるコンシューマーが認証されていない場合には、攻撃者が資格情報なしで攻撃を行うことも可能です。この問題は以下のApache Camelバージョンに影響します:4.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へのアップグレードが推奨されます。アップグレード後、JIRA操作を生のヘッダー名でドライブするルートは、旧来の値の代わりにCamelJira*名(例:CamelJiraIssueKey)を使用する必要があります。即時のアップグレードが困難な場合は、信頼できない入力からjira:プロデューサーに渡す前に、camel-jiraの制御ヘッダー(IssueKey、ProjectKey、IssueTransitionIdなど関連ヘッダー)をルートの先頭で削除し、JIRA操作に必要なパラメーターを信頼されたソースから設定してください。
Apache CamelのIRCコンポーネントにおける「入力検証の不備」および「ダウンストリームコンポーネントで使用される出力内特殊要素の不適切な無害化(『インジェクション』)」の脆弱性です。camel-ircプロデューサーは、送信するIRCメッセージの宛先をExchangeヘッダーのirc.sendTo(定数IrcConstants.IRC_SEND_TO、値はirc.sendTo)から選択します。このヘッダーが存在する場合、エンドポイントで設定されたチャンネルリストを上書きし、メッセージは指定された宛先のみに送信されます。さらに、コンポーネントの制御用ヘッダー(irc.target、irc.messageType、irc.user.*、irc.num、irc.value)はプレフィックスなしの通常の値を使用しています。これらのヘッダー名はCamel / camelのプレフィックスで始まらないため、HTTP境界でCamelのヘッダ名前空間のみをブロックするHttpHeaderFilterStrategyにより、これらはインバウンドHTTPリクエストからそのままExchangeに通過します。HTTPコンシューマー(例:platform-http)からirc:プロデューサーへルートを橋渡しする場合は、任意のHTTPクライアントがirc.sendToヘッダーを設定でき、ルートが元々設定していたチャンネル宛てのメッセージを任意のIRCチャンネルやユーザーにリダイレクトすることが可能となります。これにより、メッセージ内容が攻撃者に選ばれたニックネームに漏洩したり、公開チャンネルへ流出したり、ボットから送信されたように見えるメッセージを届けられたりします。橋渡し先のコンシューマーが認証不要の場合、認証情報は必要ありません。この問題はApache Camelのバージョン4.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へのアップグレードが推奨されます。アップグレード後は、IRCヘッダーを生のヘッダー名で設定しているルートについては、古いirc.*の値ではなくCamelIrc*の名前(例:CamelIrcSendTo)を使用する必要があります。すぐにアップグレードできない環境では、irc:プロデューサーの前に信頼できない入力からのirc.*ヘッダーを除去する(例:ルート開始時にremoveHeaders('irc.*')を使用)とともに、IRC宛先は信頼できるソースから設定してください。
Apache Camel Kafkaコンポーネントにおける、不適切な入力検証および下流コンポーネントで使用される出力中の特殊要素の不適切な無害化(インジェクション)による脆弱性です。camel-kafkaプロデューサーは、kafka.OVERRIDE_TOPIC Exchangeヘッダーからランタイムで設定されたターゲットトピックを上書きできます。KafkaProducer.evaluateTopic()は、エンドポイントに設定されたトピックよりもヘッダー値を優先して返します。KafkaConstantsのコントロールヘッダー定数(例えばOVERRIDE_TOPIC = kafka.OVERRIDE_TOPIC、OVERRIDE_TIMESTAMP = kafka.OVERRIDE_TIMESTAMP、PARTITION_KEY = kafka.PARTITION_KEY)は、Camelプレフィックスなしの単純な値を使用していました。camel-kafka独自のKafkaHeaderFilterStrategyはkafka.*名前空間をフィルターしますが、これはKafkaからExchangeへの直列化境界(KafkaレコードヘッダーのExchangeへの読み込みおよびExchangeヘッダーのKafkaレコードへの書き込み)にのみ適用されます。マルチコンポーネントルートで上流のコンシューマーから到着するヘッダーには適用されません。上流のHTTPコンシューマーはHttpHeaderFilterStrategyを使用しており、Camel/camel名前空間のみをブロックするため、kafka.*ヘッダーはフィルターされずに通過します。その結果、HTTPコンシューマー(例えばplatform-http)からkafka:プロデューサーへのブリッジとなるルート内では、任意のHTTPクライアントがkafka.OVERRIDE_TOPICヘッダーを設定し、メッセージを設定されたトピックではなく任意のKafkaトピックに公開させることが可能です。これにより、内部の機密トピックへリダイレクトしたり、重要な下流サービスが消費するトピックに攻撃者が作成したメッセージを注入したりする恐れがあります。関連するkafka.OVERRIDE_TIMESTAMPおよびkafka.PARTITION_KEYヘッダーも同様に注入されるため、メッセージの過去日時化や特定パーティションの指定が可能となります。ブリッジングコンシューマーが認証されていない場合は認証情報が不要です。本問題はApache Camelのバージョン4.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へのアップグレードを推奨します。アップグレード後は、Kafkaヘッダーを直接のヘッダー名で設定または読み取りするルートにおいて、旧来のkafka.*値ではなく、CamelKafka*名(例:CamelKafkaOverrideTopic、CamelKafkaTopic)を使用する必要があります。すぐにアップグレードできない場合は、kafka:プロデューサー前の信頼できない入口からkafka.*ヘッダーを除去してください(例:ルートの冒頭でremoveHeaders('kafka.*')を実行)。また、ターゲットトピックは信頼できるソースから設定することを推奨します。
Apache Camel Salesforceコンポーネントにおける、「ダウンストリームコンポーネントで使用される出力内の特殊要素の不適切な無害化(インジェクション)」および「ユーザー制御キーによる認可バイパス」の脆弱性についてご説明します。camel-salesforceプロデューサーは、その操作パラメータ(SOQLクエリ、SOSL検索、対象SObjectの名前とID、Apex RESTのURLおよびメソッド、Apexクエリパラメータ)をExchangeメッセージヘッダーから解決します。ヘッダーはエンドポイント設定値より優先して読み取られます(AbstractSalesforceProcessor.getParameter()はまずヘッダーを読み取り、フォールバックとしてエンドポイント設定を使用します)。SalesforceEndpointConfig内の制御ヘッダー定数(例:SOBJECT_QUERY = sObjectQuery、SOBJECT_SEARCH = sObjectSearch、SOBJECT_NAME = sObjectName、SOBJECT_ID = sObjectId、APEX_URL = apexUrl、APEX_METHOD = apexMethod、およびapexQueryParamプレフィックス)は、Camelのプレフィックスなしの単純な名前を使用しています。これらの名前はCamelまたはcamelというプレフィックスで始まらないため、HTTP境界でCamelヘッダー名前空間のみをブロックするHttpHeaderFilterStrategyは、これらのヘッダーをインバウンドHTTPリクエストからExchangeへ通過させてしまいます。HTTPコンシューマ(例:platform-http)をsalesforce: プロデューサーへブリッジするルートにおいては、任意のHTTPクライアントがこれらのヘッダーを設定し、ルートの意図した操作を上書き可能です。攻撃者は独自のSOQLクエリやSOSL検索を提供し、接続されたSalesforceユーザーがアクセス可能な任意のSObjectデータを読み取ったり、CRUD操作の対象SObject名やIDを上書きしたり、Apex REST呼び出し先のエンドポイントやHTTPメソッド(破壊的メソッドを含む)を変更してクエリパラメータを注入したりできます。これらの操作はすべて、通常広範な権限を持つSalesforce接続(統合)ユーザーの完全な権限で実行されます。ブリッジングコンシューマが認証不要の場合、攻撃者は資格情報なしで悪用することも可能です。この問題は、Apache Camelのバージョン4.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へのアップグレードが推奨されます。アップグレード後は、Salesforce操作パラメータを生のヘッダー名で設定しているルートにおいて、旧来のsObject* / apex*値の代わりにCamelSalesforce*(例:CamelSalesforceSObjectQuery、CamelSalesforceApexUrl)を使用しなければなりません。エンドポイントオプションの綴りは変更ありません。すぐにアップグレードできない環境では、信頼できない入力からsalesforce: プロデューサーへ渡す前にSalesforce制御ヘッダー(例:removeHeaders('sObject*')およびremoveHeaders('apex*')をルートの開始時に実行)を削除し、クエリ、SObject、およびApexパラメータを信頼できるソースから設定してください。
Hugoは静的サイトジェネレーターです。バージョン0.162.0以前のHugoは、いくつかのマークアップ形式のコンテンツファイルを受け入れていました。text/htmlメディアタイプにマッピングされたファイル(通常は/content配下の.htmlファイル、またはcontent.mediaType = "text/html"に設定されたコンテンツアダプターによって生成されたページ)は、その本文がレンダリングされたページにそのまま出力されていました。信頼できないソースからHTMLコンテンツを取り込むサイトでは、保存済みクロスサイトスクリプティング(XSS)が発生する可能性がありました。この脆弱性はバージョン0.162.0で修正されています。
Hugoは静的サイトジェネレーターです。バージョン0.91.0から0.162.0までの間、resources.GetRemoteは呼び出されたURLに対してsecurity.http.urlsを適用していましたが、HTTPの3xxリダイレクトでの中間URLの再検証を行っていませんでした。そのため、許可されたサーバー(またはそのDNSやレスポンスを制御する攻撃者)がリクエストをポリシーで禁止されているはずのホストにリダイレクトでき、Hugoはそのリダイレクト先のターゲットからデータを取得してしまいました。同様のバイパスにより、オペレーターが設定したホスト制限も解除されてしまいました。この脆弱性はバージョン0.162.0で修正されています。
OP-TEEはArm Cortex-Aコア上で動作する非セキュアなLinuxカーネルの補助として設計されたトラステッド実行環境(TEE)であり、TrustZone技術を使用しています。バージョン3.0.0から4.11.0未満の間、OP-TEEコアのAES-GCM実装における32ビット整数オーバーフローにより、ペイロードまたは追加認証データ(AAD)が512メガバイトを超えて処理された後に認証タグが誤ったビット長で計算される問題が発生します。バージョン4.11.0にはこの問題を修正するパッチが含まれています。既知の回避策は存在しません。
PillowはPythonの画像処理ライブラリです。バージョン12.3.0より前のPIL/PcfFontFile.pyの_load_bitmaps()は、PCFのMETRICSセクションからグリフの寸法を読み取り、それらを直接Image.frombytes()に渡していましたが、Image._decompression_bomb_check()を呼び出していなかったため、細工されたPCFフォントデータにより過剰なメモリ割り当てが発生する可能性がありました。この問題はバージョン12.3.0で修正されました。以上が今回の脆弱性に関する説明です。
PillowはPythonの画像処理ライブラリです。バージョン12.3.0以前のPIL/FontFile.pyのFontFile.compile()は、Image._decompression_bomb_check()を呼び出さずにImage.new("1", (xsize, ysize))でグリフごとの画像を結合したビットマップを組み立てていました。このため、フォントの変換や保存時に過剰なメモリ割り当てが発生する可能性がありました。この問題はバージョン12.3.0で修正されています。
vLLMは、大規模言語モデル(LLM)向けの高スループットかつメモリ効率の良い推論およびサービングエンジンです。バージョン0.24.0以前では、フロントエンドで合法とされる複数リクエストによる推測的デコーディングのワークロードが原因で、リジェクションサンプラーがモデルの語彙サイズの境界値と等しい復元トークンを生成してしまうことがありました。この値は、エンジンがリクエストの次のライブトークンを選択する際に-1(負の値)に変換され、ドラフターの入力IDに書き戻されます。その語彙外の値は後にモデルの埋め込みおよびアテンション経路で使用され、GPUデバイス側のアサーションによりエンジンワーカーがクラッシュしてしまいます。同じトリガーとなるリクエストシーケンスは、公開されているgRPCのGenerateおよびAbortエンドポイントを通じても到達可能なため、生成リクエストを送信できるリモートクライアントが共有されているエンジンワーカーをクラッシュさせ、同時に実行されているリクエストを中断し、ワーカーが再起動されるまで他のクライアントに対するサービス全体のサービス拒否(DoS)状態を引き起こしてしまいます。この問題はバージョン0.24.0で修正されました。
TraefikはHTTPリバースプロキシおよびロードバランサーです。v2.11.51、v3.6.22、およびv3.7.6以前のバージョンでは、TraefikのBasicAuth、DigestAuth、およびForwardAuthミドルウェアは、自身の値を書き込む前に正規の大文字小文字のヘッダーを削除しますが、多くのバックエンドがダッシュ形式と同様に正規化するアンダースコアを含む変種のヘッダー名については考慮していません。攻撃者が保護されたルートに到達可能な場合、アンダースコア変種のヘッダーを注入してTraefikの削除をすり抜け、バックエンドに到達させることができます。または、認証されていないForwardAuthのauthResponseHeadersパスにおいて、Traefikが設定しようとした値の代わりにこのヘッダーを用いてアイデンティティや認可コンテキストを偽装することが可能です。この問題はv2.11.51、v3.6.22、およびv3.7.6のバージョンで修正されています。
TraefikはHTTPリバースプロキシおよびロードバランサーです。v2.11.51、v3.6.22、およびv3.7.6より前のバージョンでは、TraefikのForwardAuthミドルウェアは、trustForwardHeaderがfalseに設定されている場合でも、認証サービスに送信されるX-Forwarded-Portヘッダーを、サニタイズされた転送リクエストではなく元の受信リクエストから派生させていました。その結果、未認証のリモート攻撃者が平文のHTTP接続上でX-Forwarded-Proto: httpsヘッダーを注入し、TraefikにX-Forwarded-Port: 443を認証サービスに転送させることで、ポートベースの認可チェックを回避することが可能となっていました。この問題はv2.11.51、v3.6.22、およびv3.7.6で修正されています。
TraefikはオープンソースのHTTPリバースプロキシおよびロードバランサーです。v3.7.0からv3.7.6未満のバージョンにおいて、TraefikのKubernetes Gateway APIプロバイダーは、同じバックエンドService:portをターゲットとする2つのaccepted HTTPRouteを解決する際、それぞれ異なるbackendRefフィルターを同じ子サービスに設定していても、一方のルートのフィルターセットだけをバックエンドに到達するすべてのリクエストに適用してしまう可能性があります。tenant identity(テナントの識別)、認可コンテキスト、あるいはバックエンドが信頼する値などのセキュリティに敏感なヘッダーをbackendRefフィルターで設定しているGatewayのデプロイメントでは、同じバックエンドService:portを共有するaccepted HTTPRouteを作成できる攻撃者が、自身のルートのフィルターコンテキストを別のルートのリクエストに適用してしまいます。さらに、ReferenceGrantによりクロスネームスペースのターゲティングが許可されている場合には、名前空間を越えた影響が及ぶ可能性があります。この問題はv3.7.6で修正されています。
PillowはPythonの画像処理ライブラリです。バージョン12.3.0以前のPIL/BdfFontFile.pyのbdf_char()は、BDFフォントファイルからBBXの幅と高さのフィールドを読み込み、攻撃者が制御する寸法をImage.new()に渡していましたが、その際にImage._decompression_bomb_check()を呼び出さず、Pillowに記載されているデコンプレッションボム保護を回避し、過剰なメモリ割り当てを許可していました。この問題はバージョン12.3.0で修正されています。
PillowはPythonの画像処理ライブラリです。バージョン12.3.0以前では、PIL/GdImageFile.pyのGdImageFile._open()がGD 2.xヘッダーから画像の寸法を読み取り、それらをImage._decompression_bomb_check()を呼び出さずにself._sizeに格納していました。その結果、細工された.gdファイルを読み込む際に過剰なCヒープの割り当てが引き起こされる可能性がありましたが、この問題はバージョン12.3.0で修正されています。
vLLMはLLMの推論とサービス提供のためのライブラリです。バージョン0.12.0から0.24.0未満の間に、純粋なプロンプトを送信し、M-RoPEを使用するモデルで/v1/completionsリクエストにペイロードを埋め込むと、EngineCoreがアサーションに失敗して致命的なクラッシュを引き起こし、サーバーアプリケーション全体がシャットダウンします。/v1/completionsリクエストを実行する権限を持つ任意のリモートユーザーがこのリクエストを行い、クラッシュを誘発することが可能です。この問題はバージョン0.24.0で修正されています。
vLLMは、LLM向けの高スループットかつメモリ効率の良い推論およびサービングエンジンです。バージョン0.24.0以前では、structured_outputs.regex APIパラメータはユーザー提供の正規表現文字列をコンパイルタイムアウトなしで直接文法コンパイラのバックエンドに渡していました。xgrammarバックエンドでは文字列がガードなしで正規表現コンパイラに渡され、outlinesバックエンドではルックアラウンドや後方参照などの構造的な問題が検証ステップでブロックされますが、複雑性解析は行われていませんでした。そのため、ネストされた量指定子を含むパターンはすべてのチェックを通過し、指数関数的な状態空間の拡大を引き起こします。結果として、敵対的な正規表現を含む単一のリクエストが推論ワーカーを無期限にハングさせ、サービス拒否を引き起こす可能性がありました。この問題はバージョン0.24.0で修正されています。
vLLMは大規模言語モデルの推論およびサービングエンジンです。バージョン0.22.0から0.23.0において、/v1/audio/transcriptionsおよび/v1/audio/translationsルートはアップロードされた音声ファイルを完全にメモリに展開するためにrequest.file.read()を呼び出しますが、その後の音声からテキストへの前処理段階で、ドキュメントに記載されたVLLM_MAX_AUDIO_CLIP_FILESIZE_MB(デフォルト25MB)という圧縮アップロードサイズ制限をvLLMがチェックします。そのため、これらのルートにアクセス可能なAPI利用者はサイズ超過のマルチパートアップロードを送信でき、リクエストが大きすぎるとして拒否される前に、アップロードされたファイルサイズに比例したメモリをvLLMが割り当ててしまいます。その結果、リソース制限に応じてメモリ圧迫やプロセス終了を引き起こす可能性があります。この問題はバージョン0.24.0で修正されています。
出典:JVN(Japan Vulnerability Notes・独立行政法人情報処理推進機構(IPA)/JPCERT コーディネーションセンター/jvn.jp)を加工して作成。 全文検索は当サイト収録分(全289,756件)を対象とし、発表日の新しい順に表示しています。 本情報の最新性・正確性・完全性は保証されません。詳細は各 JVN 詳細ページをご確認ください。 なお本情報は製品・ソフトウェアの脆弱性に関するものであり、特定の法人・製品ベンダの評価や信用性を示すものではありません。