Skip to main content

BOSH Director EUVDEUVD-2026-32098

| CVE-2026-41009 MEDIUM
Path Traversal (CWE-22)
2026-05-27 security@vmware.com GHSA-gq7j-4834-ccgp
4.3
CVSS 4.0 · Vendor: vmware
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Compromise BOSH agent VM (PR:H)
  2. Delivery
    Wait for Director to issue compile_package task
  3. Exploit
    Forge agent JSON reply with traversal blob ID
  4. Execution
    Director passes unsanitized ID to download_and_delete_blob
  5. Persist
    Arbitrary file read via blobstore.get(traversal_path)
  6. Impact
    Arbitrary 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.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.0% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – 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

BOSH Director 0 <282.1.12

Affected Packages

euvd bosh_director fix: 282.1.12

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

Vendor (vmware) PRIMARY 4.3 MEDIUM
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

Attack Vector
Local
Attack Complexity
High
Attack Requirements
Present
Privileges Required
High
User Interaction
Passive
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
High
Vulnerable system: Availability
Low
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
Low

Lifecycle Timeline

1
Patch available
May 27, 2026 - 19:46 EUVD

DescriptionCVE.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

EPSS Score
0.0%
Top 99% exploitable
Data Quality
5 sources
Confidence: Medium

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.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.0%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Defer
Exploitation
None
System Exposure· derived
Small
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

22
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +22
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Path traversal exploits occur when applications use user-controlled input to construct file system paths without proper validation.

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy