GHSA-Q284-4PVR-M585
Vulnerability from github – Published: 2026-02-02 23:41 – Updated: 2026-02-04 21:56Two related vulnerabilities existed in the macOS application's SSH remote connection handling (CommandResolver.swift):
Details
The sshNodeCommand function constructed a shell script without properly escaping the user-supplied project path in an error message. When the cd command failed, the unescaped path was interpolated directly into an echo statement, allowing arbitrary command execution on the remote SSH host.
The parseSSHTarget function did not validate that SSH target strings could not begin with a dash. An attacker-supplied target like -oProxyCommand=... would be interpreted as an SSH configuration flag rather than a hostname, allowing arbitrary command execution on the local machine.
Impact
An attacker who can influence a user's remote connection settings (via social engineering or malicious configuration) could achieve arbitrary code execution on either the user's local machine or their configured remote SSH host, depending on which input vector is exploited.
Affected component: macOS menubar application (Remote/SSH mode only)
Not affected: CLI (npm install openclaw), web gateway, iOS/Android apps, or users running in Local mode.
{
"affected": [
{
"package": {
"ecosystem": "npm",
"name": "clawdbot"
},
"ranges": [
{
"events": [
{
"introduced": "0"
},
{
"fixed": "2026.1.29"
}
],
"type": "ECOSYSTEM"
}
]
}
],
"aliases": [
"CVE-2026-25157"
],
"database_specific": {
"cwe_ids": [
"CWE-78"
],
"github_reviewed": true,
"github_reviewed_at": "2026-02-02T23:41:35Z",
"nvd_published_at": "2026-02-04T20:16:06Z",
"severity": "HIGH"
},
"details": "Two related vulnerabilities existed in the macOS application\u0027s SSH remote connection handling (`CommandResolver.swift`):\n\n## Details\n\nThe `sshNodeCommand` function constructed a shell script without properly escaping the user-supplied project path in an error message. When the `cd` command failed, the unescaped path was interpolated directly into an `echo` statement, allowing arbitrary command execution **on the remote SSH host**.\n\nThe `parseSSHTarget` function did not validate that SSH target strings could not begin with a dash. An attacker-supplied target like `-oProxyCommand=...` would be interpreted as an SSH configuration flag rather than a hostname, allowing arbitrary command execution **on the local machine**.\n\n## Impact\n\nAn attacker who can influence a user\u0027s remote connection settings (via social engineering or malicious configuration) could achieve arbitrary code execution on either the user\u0027s local machine or their configured remote SSH host, depending on which input vector is exploited.\n\n**Affected component:** macOS menubar application (Remote/SSH mode only)\n\n**Not affected:** CLI (`npm install openclaw`), web gateway, iOS/Android apps, or users running in Local mode.",
"id": "GHSA-q284-4pvr-m585",
"modified": "2026-02-04T21:56:23Z",
"published": "2026-02-02T23:41:35Z",
"references": [
{
"type": "WEB",
"url": "https://github.com/openclaw/openclaw/security/advisories/GHSA-q284-4pvr-m585"
},
{
"type": "ADVISORY",
"url": "https://nvd.nist.gov/vuln/detail/CVE-2026-25157"
},
{
"type": "PACKAGE",
"url": "https://github.com/openclaw/openclaw"
}
],
"schema_version": "1.4.0",
"severity": [
{
"score": "CVSS:3.1/AV:L/AC:H/PR:N/UI:R/S:C/C:H/I:H/A:H",
"type": "CVSS_V3"
}
],
"summary": "OpenClaw/Clawdbot has OS Command Injection via Project Root Path in sshNodeCommand"
}
Sightings
| Author | Source | Type | Date |
|---|
Nomenclature
- Seen: The vulnerability was mentioned, discussed, or observed by the user.
- Confirmed: The vulnerability has been validated from an analyst's perspective.
- Published Proof of Concept: A public proof of concept is available for this vulnerability.
- Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
- Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
- Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
- Not confirmed: The user expressed doubt about the validity of the vulnerability.
- Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.