Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessCompromise BOSH agent VM (PR:H)
-
DeliveryWait for Director to issue compile_package task
-
ExploitForge agent JSON reply with traversal blob ID
-
ExecutionDirector passes unsanitized ID to download_and_delete_blob
-
PersistArbitrary file read via blobstore.get(traversal_path)
-
ImpactArbitrary file deletion via blobstore.delete(traversal_path)
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V5 - File Handling Path canonicalization, traversal prevention
MITRE ATT&CK
2 techniques across 2 tactics: Discovery, Collection The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | The local blobstore provider must be explicitly configured on the BOSH Director - deployments using S3, Azure Blob, GCS, or other non-filesystem blobstore backends are not affected. The attacker must have already achieved high-privilege control of a BOSH agent VM (PR:H), which is a substantial prerequisite representing a prior compromise or insider threat scenario. A long-running Director task such as compile_package must be actively in progress at the time of exploitation (AT:P precondition; UI:P). The attack vector is local (AV:L) and attack complexity is high (AC:H), meaning opportunistic or automated exploitation is not feasible. Exploitation is limited to: (1) attackers who have already compromised a managed agent VM, (2) environments using the local blobstore provider, and (3) windows when compile or similarly long-running tasks are executing. These combined barriers mean the realistic exposed population is narrow, primarily internal threat actors or post-compromise lateral movement scenarios within BOSH-managed infrastructure. |
| Impact | Real-world risk is substantially lower than the integrity-focused CVSS vector might suggest in isolation. The CVSS 4.0 score of 4.3 (Medium) encodes multiple high-friction prerequisites: AV:L (local attack vector - attacker must have presence on the Director's network or host), AC:H (high complexity), AT:P (specific precondition - local blobstore must be configured), PR:H (high privileges - a BOSH agent VM must already be compromised or controlled), and UI:P (user interaction - a long-running task must be in flight). EPSS sits at 0.01% (1st percentile), confirming extremely low exploitation probability across the broader threat landscape. SSVC signals corroborate this: exploitation status 'none,' automatable 'no,' and technical impact 'partial.' This vulnerability is not in CISA KEV. One notable discrepancy exists: the CVSS vector records VC:N (no confidentiality impact to the vulnerable system), yet both the blog title ('arbitrary reads') and the code path description confirm that blobstore.get(id) executes and returns file contents before blobstore.delete(id) runs. This suggests the CVSS may understate the confidentiality dimension; defenders should verify with the Cloud Foundry advisory whether file contents are exposed to the attacker-controlled agent or only consumed internally by the Director process. |
| Exploit ScenarioDerived | An attacker who has already compromised a BOSH agent VM - or who controls an agent through a prior deployment-level breach - waits for the Director to issue a compile_package long-running request. The attacker forges or intercepts the agent's JSON reply, replacing the legitimate compile_log_id value with a path traversal string such as '../../jobs/director/config/director.yml'. The Director's AgentClient passes this string unmodified to download_and_delete_blob, causing the Director to read and then permanently delete the Director's own configuration file from disk. No public exploit code has been identified at time of analysis. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – May 27, 2026
Path traversal in BOSH Director allows a compromised BOSH agent to cause the Director to read and delete arbitrary files outside the blobstore root on the Director host filesystem. When the Director processes long-running operations such as compile_package and is configured with the local blobstore provider, agent-supplied blob IDs in the reply JSON are passed unmodified into filesystem path construction, enabling traversal strings like '../../jobs/director/config/director.yml' to resolve to sensitive files. No public exploit exists and no active exploitation has been identified; the CVSS 4.0 score of 4.3 reflects the significant prerequisite barriers including high privilege requirements and a specific non-default configuration.
RemediationAI
The primary fix is to upgrade BOSH Director to v282.1.12 or later; this is a vendor-released patch confirmed by the Cloud Foundry advisory at https://www.cloudfoundry.org/blog/cve-2026-41009-local-blobstore-may-allow-arbitrary-reads-deletes/. If an immediate upgrade is not feasible, a highly effective compensating control is to migrate from the local blobstore provider to a remote blobstore backend (S3, Azure Blob, GCS), as the path traversal is specific to Blobstore::LocalClient's filesystem path construction and does not apply to object-store backends - note that this migration requires Director reconfiguration and a blobstore migration procedure which may involve downtime. A secondary defensive measure is to restrict which agent VMs can be registered with the Director and to harden agent VM access to reduce the prerequisite of agent compromise; however, this does not eliminate the underlying code vulnerability and is not a substitute for patching. Filesystem-level controls such as running the Director process under a user with restricted read/write scope outside the blobstore directory can reduce blast radius but cannot fully prevent traversal if the Director process requires access to configuration files in adjacent directories.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
BOSH is the Cloud Foundry infrastructure deployment tool; the Director orchestrates agents running on managed VMs. For long-running tasks, AgentClient reads the agent's JSON reply and processes blob identifiers via two code paths: inject_compile_log (local_client.rb lines 332-339) reading response['value']['result']['compile_log_id'], and format_exception (lines 318-325) reading exception['blobstore_id']. Both paths call download_and_delete_blob (lines 344-349), which invokes Api::ResourceManager to call blobstore.get(id) followed by blobstore.delete(id) in an ensure block - meaning both operations always execute regardless of success. When the local blobstore provider is active, Blobstore::LocalClient#object_file_path constructs paths with File.join(@blobstore_path, oid) (local_client.rb:54-56) without any normalization, canonicalization, or prefix validation. CWE-22 (Path Traversal) is the root cause: user-controlled input is concatenated directly into a trusted filesystem base path, allowing '../' sequences to escape the blobstore directory. The vulnerability is exclusive to deployments using the local blobstore provider; cloud blobstore backends (S3, Azure Blob, GCS) are unaffected because their object IDs are not resolved as filesystem paths.
Know when Bosh gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:L/AC:H/AT:P/PR:H/UI:P/VC:N/VI:H/VA:L/SC:N/SI:N/SA:L
Primary rating from Vendor (vmware) · only source for this CVE.
CVSS VectorVendor: vmware
Lifecycle Timeline
1DescriptionCVE.org
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: BOSH Director: All versions prior to v282.1.12
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Path traversal exploits occur when applications use user-controlled input to construct file system paths without proper validation.
An issue was discovered in Cloud Foundry Foundation BOSH Release 261.x versions prior to 261.3 and all 260.x versions. R
Command injection in Cloud Foundry BOSH versions prior to v282.1.12 allows an attacker who can upload a release tarball
Cloud Foundry BOSH, versions v264 prior to v264.14.0 and v265 prior to v265.7.0 and v266 prior to v266.8.0 and v267 prio
Cloud Foundry BOSH 270.x versions prior to v270.1.1, contain a BOSH Director that does not properly redact credentials w
Credential theft and authorization tampering in Cloud Foundry BOSH (versions prior to v282.1.9) stems from the nats-sync
Credential theft and UAA token redirection in Cloud Foundry BOSH versions prior to v282.1.9 allows a network-positioned
Arbitrary blobstore deletion in BOSH Director allows a compromised, high-privileged BOSH-managed VM to delete any object
EUVD-2026-32098
GHSA-gq7j-4834-ccgp
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB