| Title | Cloud Foundry FoundationのBOSHにおけるパストラバーサルの脆弱性 |
|---|---|
| Summary | ディレクターが長時間実行されるリクエスト(例:compile_package)を送信すると、エージェントの返信JSONはAgentClientによって消費されます。inject_compile_log(332-339行)はresponse['value']['result']['compile_log_id']を読み取り、format_exception(318-325行)はexception['blobstore_id']を読み取ります。両方ともエージェントから提供された文字列を変更せずにdownload_and_delete_blob(blob_id)(344-349行)に渡します。download_and_delete_blobは@resource_manager.get_resource(blob_id)を呼び出した後、ensureブロックで@resource_manager.delete_resource(blob_id)を実行します。Api::ResourceManagerはIDをそのままblobstore.get(id)およびblobstore.delete(id)に転送します。ディレクターがローカルblobstoreプロバイダーで構成されている場合、Blobstore::LocalClient#object_file_path(oid)はnormalizeされずにFile.join(@blobstore_path, oid)(local_client.rb:54-56行)となるため、oid = "../../jobs/director/config/director.yml"がblobstoreルート外を参照してしまいます。この問題はBOSH Directorのv282.1.12より前のすべてのバージョンに影響します。 |
| Possible impacts | ・当該ソフトウェアが扱う情報について、外部への漏えいは発生しません。 ・当該ソフトウェアが扱う全ての情報が書き換えられる可能性があります。 ・当該ソフトウェアの一部が停止する可能性があります。 |
| Solution | ベンダ情報を参照して適切な対策を実施してください。 |
| Publication Date | May 27, 2026, midnight |
| Registration Date | June 9, 2026, 2:14 p.m. |
| Last Update | June 9, 2026, 2:14 p.m. |
| CVSS3.0 : 警告 | |
| Score | 5.8 |
|---|---|
| Vector | CVSS:3.0/AV:L/AC:H/PR:H/UI:R/S:C/C:N/I:H/A:L |
| Cloud Foundry Foundation |
| BOSH 282.1.12 未満 |
| No | Changed Details | Date of change |
|---|---|---|
| 1 | [2026年06月09日] 掲載 |
June 9, 2026, 2:14 p.m. |
| Summary | When the director sends a long-running request (e.g. compile_package), the agent's reply JSON is consumed by AgentClient. inject_compile_log (line 332-339) reads response['value']['result']['compile_log_id'] and format_exception (line 318-325) reads exception['blobstore_id']; both pass the agent-supplied string unmodified to download_and_delete_blob(blob_id) (line 344-349), which calls @resource_manager.get_resource(blob_id) and, in an ensure block, @resource_manager.delete_resource(blob_id). Api::ResourceManager forwards the id straight to blobstore.get(id) / blobstore.delete(id). When the director is configured with the local blobstore provider, Blobstore::LocalClient#object_file_path(oid) is File.join(@blobstore_path, oid) (local_client.rb:54-56) with no normalisation, so oid = "../../jobs/director/config/director.yml" resolves outside the blobstore root. Affected versions: |
|---|---|
| Publication Date | May 27, 2026, 5:16 p.m. |
| Registration Date | May 28, 2026, 4:09 a.m. |
| Last Update | May 27, 2026, 11:54 p.m. |