GHSA-pj5x-38rw-6fph

Suggest an improvement
Source
https://github.com/advisories/GHSA-pj5x-38rw-6fph
Import Source
https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/03/GHSA-pj5x-38rw-6fph/GHSA-pj5x-38rw-6fph.json
JSON Data
https://api.osv.dev/v1/vulns/GHSA-pj5x-38rw-6fph
Aliases
Downstream
Published
2026-03-03T21:50:05Z
Modified
2026-03-20T21:56:22Z
Severity
  • 7.1 (High) CVSS_V4 - CVSS:4.0/AV:L/AC:L/AT:P/PR:N/UI:A/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N CVSS Calculator
Summary
OpenClaw has a Command Injection via unescaped environment assignments in Windows Scheduled Task script generation
Details

Summary

A command injection vulnerability existed in Windows Scheduled Task script generation for OpenClaw. Environment values were written into gateway.cmd using unquoted set KEY=VALUE, which allowed Windows shell metacharacters in config-provided environment variables to break out of assignment context.

Affected Packages / Versions

  • Package: openclaw (npm)
  • Affected versions: <= 2026.2.17
  • Patched version: >= 2026.2.19
  • Latest published vulnerable version at review time (2026-02-19): 2026.2.17

Practical Risk Context

For a single-user, localhost-only setup on a personally controlled machine, practical risk is typically low.

This issue becomes materially relevant when configuration or environment values are sourced from less-trusted inputs, for example:

  • shared/team config templates,
  • copied config snippets,
  • setup scripts, automation, or repos that write config,
  • any workflow where another party can influence env values before gateway install/reinstall.

In those scenarios, it provides a reliable config-to-command-execution path when the scheduled task script is generated and run.

Details

On Windows, gateway service installation writes a helper batch script and then registers it via Scheduled Task (schtasks). Before the fix, env lines were rendered as set KEY=VALUE in src/daemon/schtasks.ts, so values containing metacharacters (for example &, |, ^, %, !) could alter command behavior in cmd.exe.

The fix now renders quoted assignments (set "KEY=VALUE") with explicit escaping for cmd metacharacters, updates parser compatibility for quoted assignments, and adds regression tests for metacharacter handling and round-trip parsing.

Fix Commit(s)

  • dafe52e8cf1a041d898cfb304a485fa05e5f58fb

OpenClaw thanks @tdjackey for reporting.

Database specific
{
    "cwe_ids": [
        "CWE-78"
    ],
    "github_reviewed": true,
    "github_reviewed_at": "2026-03-03T21:50:05Z",
    "nvd_published_at": null,
    "severity": "HIGH"
}
References

Affected packages

npm / openclaw

Package

Affected ranges

Type
SEMVER
Events
Introduced
0 Unknown introduced version / All previous versions are affected
Fixed
2026.2.19

Database specific

last_known_affected_version_range
"<= 2026.2.17"
source
"https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/03/GHSA-pj5x-38rw-6fph/GHSA-pj5x-38rw-6fph.json"