JVNDB-2026-030737 | |
Apache Software FoundationのApache Camelにおける相対パストラバーサルの脆弱性 | |
| 概要 | |
Apache CamelのGoogle Storageコンポーネントにおける相対パストラバーサルの脆弱性について説明します。この問題はApache Camelの以下のバージョンに影響を及ぼします:4.0.0から4.14.9未満、4.15.0から4.18.4未満、4.19.0から4.22.0未満です。camel-google-storageのコンシューマーは、downloadFileNameオプションが設定されている場合にGoogle Cloud Storageのオブジェクトをローカルファイルシステムにダウンロードします。このオプションはフォルダ名またはファイル名として文書化されており、その値に式トークンが含まれていない場合、コンシューマーはオブジェクト名を追加してローカルの保存先パスを構築します。evaluateFileExpressionはExchangeのfile-nameヘッダーをリモートオブジェクト名に設定し、downloadFileName + "/${file:name}"を評価します。${file:name}トークンはfile-nameヘッダーをそのまま返しますが、${file:onlyname}はFileUtil.stripPathを適用します。結果として得られた文字列は正規化や保存先が設定ディレクトリ内に収まっているかのチェックを行わずに、そのままnew File(result)およびblob.downloadTo(file.toPath())に渡されます。オブジェクト名はルート管理下のデータではありません。コンシューマーはバケットをリストし、返却されたすべてのBlobを繰り返し処理し、blob.getBlobId().getName()をそのまま使ってオブジェクトごとにExchangeを作成します。これらの名前を制限するfilterオプションは明示的に設定されていない限り一切適用されません。Google Cloud Storageのオブジェクト名はUTF-8の不透明なキーであり、サーバー側で正規化されず、そのまま保存およびリストされます。スラッシュは仮想ディレクトリの表示方法に過ぎず、親ディレクトリへのセグメントを含むキーもそのまま保持されます。このため、親ディレクトリセグメントを含むオブジェクト名はdownloadFileNameディレクトリの外側のパスに解決され、バケット内の名前に影響を与えられる人物はCamelプロセスの権限で任意の場所にファイルを作成または上書きできます。プロセスが書き込み可能な場所によっては、ダウンロードディレクトリ外のファイル上書きにより、該当ファイルの整合性喪失以上の権限昇格につながる可能性があります。downloadFileNameオプションは通常のコンシューマーパラメータであり、境界として厳密に適用されていることをユーザーに示す手段はありませんでした。この欠陥はコンシューマーのみで発生し、プロデューサーにはファイルダウンロード機能がありません。Camelの他のファイルダウンロード関連のコンシューマー(camel-file、camel-ftp、camel-smb、camel-mina-sftp、camel-azure-filesおよびAzure Storageのダウンロードパス)は既に設定されたディレクトリ内にローカルダウンロードを制限するパスセグメント境界チェックを実装しており、camel-google-storageのみが未対応でした。ユーザーにはこの問題を修正したバージョン4.22.0へのアップグレードが推奨されます。4.14.xのLTSリリースを利用中の場合は4.14.9への、4.18.xリリースを利用中の場合は4.18.4へのアップグレードを推奨します。すぐにアップグレードできない場合は、filterオプションを単純な単一セグメントのオブジェクト名のみを許容する正規表現に設定し、パスセパレータや親ディレクトリセグメントが含まれる名前がExchange作成前に除外されるようにしてください。なお、filterオプション未設定時は全くフィルタリングされず、正規表現はオブジェクト名全体にマッチする点に注意が必要です。あるいは、downloadFileNameに明示的な式(例えば暗黙の${file:name}ではなく${file:onlyname}に基づくもの)を指定して、リモートパスを引き継がないようにしてください。ただし、downloadFileNameに式が含まれる場合、その値はルート管理のものと見なされ、修正で追加された包含チェックの対象外となることに注意してください。防御の深層性の観点からは、外部から書き込み可能なバケットのオブジェクト名を信用できない入力として扱い、それらからローカルファイルシステムのパスを導出しないことを推奨します。 | |
| CVSS による深刻度 (CVSS とは?) | |
|
CVSS v3 による深刻度
基本値: 7.5 (重要) [その他]
| |
| 影響を受けるシステム | |
|
| |
Apache Software Foundation | |
本脆弱性の影響を受ける製品の詳細については、ベンダ情報および参考情報をご確認ください。 | |
| 想定される影響 | |
・当該ソフトウェアが扱う全ての情報が外部に漏れる可能性があります。 | |
| 対策 | |
ベンダ情報を参照して適切な対策を実施してください。 | |
| ベンダ情報 | |
Apache Software Foundation Openwall | |
| CWEによる脆弱性タイプ一覧 CWEとは? | |
| |
| 共通脆弱性識別子(CVE) CVEとは? | |
|
| |
| 参考情報 | |
| |
| 更新履歴 | |
|
| 公表日 | 2026/08/24 |
| 登録日 | 2026/08/28 |
| 最終更新日 | 2026/08/28 |



