Mar 3, 2026·5 min read·16 visits
OpenClaw prior to v2026.2.14 contains a Zip Slip vulnerability in its skill installation logic. Attackers can craft malicious archives with directory traversal sequences (e.g., `../../`) to overwrite critical system files when the archive is extracted. This can result in arbitrary code execution or system compromise.
A critical Zip Slip vulnerability exists in OpenClaw versions prior to 2026.2.14. The application's archive extraction mechanism failed to properly validate entry paths within ZIP and TAR archives, allowing malicious actors to write arbitrary files to the filesystem outside the intended destination directory. This flaw affects the skill installation process and internal asset management, potentially leading to Remote Code Execution (RCE) via configuration or executable overwrite.
OpenClaw is an open-source personal AI assistant that supports modular extensions through skills, plugins, and internal tools. A security assessment revealed a critical Arbitrary File Write vulnerability, commonly known as 'Zip Slip', within the application's archive extraction routines. This mechanism is primarily used when the application downloads and installs external assets, such as community skills or tools like signal-cli.
The vulnerability arises because the extraction logic blindly trusts the file paths specified within archive entries. When OpenClaw unpacks a compressed file (ZIP or TAR), it constructs the destination path by concatenating the target directory with the entry's name. If an attacker crafts an archive entry with a name like ../../../../root/.ssh/authorized_keys, the application writes the file content to that resolved path, bypassing the intended sandbox directory.
Simultaneously, related path traversal issues were identified in the Browser Tool component. The /hooks/file-chooser endpoint lacked path confinement for uploads, and the download manager accepted suggested filenames containing traversal sequences, further expanding the attack surface for local file system manipulation.
The root cause of this vulnerability is the absence of canonical path validation during the file extraction process. This falls under CWE-22 (Improper Limitation of a Pathname to a Restricted Directory).
In a secure extraction implementation, the application must perform the following steps for every entry in an archive:
. and ..).OpenClaw failed to implement step 4. Specifically, the extraction logic utilized unzip (or JS equivalents) and tar commands without flags or logic to strip directory components or validate the final destination. Consequently, the filesystem APIs treated the traversal sequences as valid instructions to navigate up the directory tree, allowing files to escape the targetDir confinement.
The vulnerability was remediated in version 2026.2.14 by introducing a centralized, secure extraction utility in infra/archive.ts. The patch replaces the insecure extraction calls with a validation routine that strictly enforces path confinement.
The following code snippet demonstrates the logic used to validate archive entries before writing them to disk. It normalizes paths and explicitly checks for traversal attempts:
// src/infra/archive.ts (Patched Logic)
function validateArchiveEntryPath(entryPath: string, targetDir: string): void {
// 1. Normalize separators to forward slashes
// 2. Normalize relative segments (collapsing '..')
const normalized = path.posix.normalize(entryPath.replaceAll("\\", "/"));
// Check 1: Prevent immediate traversal indicators
if (normalized === ".." || normalized.startsWith("../")) {
throw new Error(`Security Violation: Archive entry escapes destination: ${entryPath}`);
}
// Check 2: Prevent absolute paths
if (path.posix.isAbsolute(normalized)) {
throw new Error(`Security Violation: Archive entry is absolute: ${entryPath}`);
}
// Check 3: Symlink and Hardlink restriction (Pseudo-code for logic)
// The patch also rejects entries identified as symlinks or hardlinks
// to prevent 'Symlink Slip' attacks.
}Additionally, the patch enforces strict directory confinement for other file operations. Downloads are now locked to /tmp/openclaw/downloads, and uploads are restricted to /tmp/openclaw/uploads, ensuring that temporary file operations cannot impact the host OS configuration.
To exploit this vulnerability, an attacker must induce the OpenClaw application to extract a malicious archive. This is typically achieved by distributing a compromised 'skill' or plugin via a community repository or by manipulating a download URL if the attacker has a Man-in-the-Middle (MitM) position or control over an update server.
Attack Scenario:
../../../../../../bin/malicious_script.sh.openclaw skills install <malicious-skill>.malicious_script.sh to the system's /bin directory, overwriting any existing file or creating a new one.Due to the permissions typically required by OpenClaw to manage system tools, the overwritten files often execute with high privileges, leading to immediate system compromise.
The impact of this vulnerability is rated as High. The ability to write arbitrary files to the filesystem provides attackers with multiple avenues to achieve Remote Code Execution (RCE).
~/.ssh/authorized_keys allows direct SSH access..bashrc ensures code execution upon user login.The vulnerability is particularly dangerous in environments where OpenClaw runs with elevated privileges or in containerized environments where the container filesystem is not read-only.
| Product | Affected Versions | Fixed Version |
|---|---|---|
openclaw OpenClaw | < 2026.2.14 | 2026.2.14 |
| Attribute | Detail |
|---|---|
| CWE ID | CWE-22 |
| Attack Vector | Network / Local (User Interaction) |
| Impact | Arbitrary File Write / RCE |
| Severity | High |
| Exploit Status | PoC Available |
| Platform | Node.js |
A vulnerability in the Slack and Mattermost platform adapters for NousResearch hermes-agent permits an unauthenticated remote attacker to execute arbitrary mass mentions. By leveraging prompt injection, an attacker can bypass output sanitization logic and trigger workspace-wide notification exhaustion.
CVE-2026-9306 is a critical unauthenticated Insecure Direct Object Reference (IDOR) vulnerability located in the QuantumNous new-api application, affecting versions up to and including 0.12.1. The flaw is caused by improper middleware ordering combined with a lack of object-level authorization checks. This allows remote, unauthenticated attackers to retrieve sensitive Midjourney images belonging to other users by supplying a valid task identifier.
The instagrapi library prior to version 2.6.9 contains an improper input validation vulnerability within its challenge handling mechanism. Maliciously crafted server responses can manipulate the client into forwarding session cookies and credentials to an external attacker-controlled domain.
GHSA-QQQM-5547-774X is a critical path traversal vulnerability in the FileBrowser Quantum application, specifically within the Go backend package. The vulnerability resides in the HTTP handler responsible for processing bulk file modifications via the public API. Unauthenticated attackers can exploit an order-of-operations flaw in the path sanitization logic to bypass intended directory restrictions. This allows adversaries to arbitrarily read, move, and overwrite files on the underlying filesystem by supplying specially crafted HTTP PATCH requests.
The qs query string parsing and serialization library for Node.js is vulnerable to a synchronous Denial of Service (DoS) attack. The vulnerability manifests as a process-terminating TypeError when processing arrays with null or undefined elements under specific configuration parameters.
The aiosend library prior to version 3.0.6 contains a pre-authentication Denial of Service (DoS) vulnerability in its webhook handling mechanism. The software processes and deserializes incoming JSON payloads before verifying the cryptographic signature, allowing unauthenticated attackers to exhaust server CPU and memory resources by sending large, complex payloads.