CVE-2026-79985
Apache Camel: camel-smb は、ポーリング対象のファイルのリモートパスを、ポーリング対象のディレクトリに制限することなくサーバーのディレクトリ一覧で報告された名前から解決していたため、トラバーサルセグメントを含む一覧エントリが外部へ移動される可能性がありました
- 公開済み
- 2026/10/19
- 更新済み
- 2026/10/20
- CNA の割り当て
- apache
- 観察された証拠
- 2026/10/17
プライマリ CVSS
cvelist · CVSS 3.1
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N概要
Apache Camel SMBコンポーネントにおける、パス名の制限ディレクトリへの不適切な制限(「パストラバーサル」)の脆弱性。この問題はApache Camelに影響します:4.2.0から4.18.5より前、4.19.0から4.22.1より前。Camelのリモートファイルコンシューマーは、リモートサーバー上のディレクトリをポーリングし、設定されたディレクトリとサーバーのディレクトリ一覧で報告されたファイル名を連結して、各ファイルの絶対リモートパスを構築します。この連結(FtpUtils.absoluteFilePathおよびGenericFileConsumer)は、字句正規化も、結果がポーリング対象のディレクトリ内に留まるかどうかのチェックも行っておらず、結果として得られたパスが、そのファイルに対する後続のすべてのリモート操作のオペランドとなっていました:取得(FtpOperations.retrieveFile / SftpOperations。GenericFileConsumerから到達し、取得名はGenericFile.getAbsoluteFilePathからそのまま取得されます)、delete=true時の削除(GenericFileDeleteProcessStrategy)、およびmove、preMove、moveFailedまたはreadLock=renameが設定されている場合のリネーム(GenericFileProcessStrategySupportおよびGenericFileRenameExclusiveReadLockStrategy)。isValidFileもisMatchedも、包含チェックを一切行っていませんでした。したがって、単一のパスセグメントではない一覧エントリは、設定されたポーリングディレクトリ外のパスに解決され、Camelがエンドポイント自身の認証情報を使用して、そのディレクトリ外のファイルを読み取り、削除、またはリネームすることになりました。一覧の名前はルート制御されたデータではありません。それはリモートサーバーによって提供されるものであり、FTP制御チャネルには整合性保護が一切ないため、オン・パス攻撃者は認証情報を一切持たずにLIST応答を書き換えることができます。侵害された、悪意のある、またはマルチテナントのサーバー、あるいは仮想ファイルシステムに基づくサーバーは、そのような名前を直接出力できます。取得はデフォルトのコンシューマー設定で到達可能です。なぜならリモートコンシューマーは一覧に載ったすべてのファイルをダウンロードするからです。削除とリネームにはさらに上記のいずれかの処理オプションが必要であり、いずれも一般的です。Camelがポーリングするよう設定されたディレクトリからの脱出は無条件ですが、サーバー自身のアカウント境界からの脱出は、そのサーバーがアカウントを閉じ込めているかどうかにも依存します。jailStartingDirectoryオプションは、Camelを開始ディレクトリに制限すると文書化されており、デフォルトで有効になっていますが、プロデューサーの書き込みを制御し、localWorkDirectoryの包含作業以降はコンシューマーのローカル作業ディレクトリへのダウンロードを制御していましたが、このリモートオペランドを制約していなかったため、その名前と説明はここでは強制されていない境界を主張していました。同じエントリポイントはローカル側ですでに認識されていました:localWorkDirectoryのダウンロードパスは、親ディレクトリセグメントを含むリモートファイル名がローカル作業ディレクトリ外に解決できないように制約されていました。リモートオペランドは、その表面の残りの半分でした。この成果物はsmbスキームを提供します。そのコンシューマーはRemoteFileConsumerを介さずに独自に共有一覧を走査し、正確に「.」と「..」のエントリのみをスキップするため、他の形式でトラバーサルセグメントを含む名前はチェックされずに連結されていました。これに到達するには、単一のパスセグメントではない一覧名を出力するサーバーが必要であり、準拠したSMB2実装はそのようなことを行いません。この露出は、このスキームに対する実証された概念実証によるものではなく、他のリモートファイルコンシューマーと同じ根拠で修正されました。この問題を修正するApache Camel 4.23.0にアップグレードしてください。4.22.xリリースストリームのユーザーは4.22.1にアップグレードする必要があります。4.18.x LTSリリースストリームのユーザーは4.18.5にアップグレードする必要があります。4.14.xストリームはサポート終了に達しており、この修正を受け取りません。そのユーザーはサポートされているリリースストリームに移行する必要があります。
ソース
責任ある使用
脆弱性情報は、自分が所有しているシステム、またはテストを許可されているシステムでのみ使用してください。 Kitploit は公開研究メタデータにリンクしており、エクスプロイト コードや悪意のあるペイロードは保存しません。