Skip to content

OpenClaw's system.run approvals did not bind mutable script operands across approval and execution

Moderate severity GitHub Reviewed Published Mar 10, 2026 in openclaw/openclaw • Updated Mar 12, 2026

Package

npm openclaw (npm)

Affected versions

<= 2026.3.7

Patched versions

2026.3.8

Description

OpenClaw's system.run approval flow did not bind mutable interpreter-style script operands across approval and execution.

A caller could obtain approval for an execution such as sh ./script.sh, rewrite the approved script before execution, and then execute different content under the previously approved command shape. The approved argv values remained the same, but the mutable script operand content could drift after approval.

Latest published npm version verified vulnerable: 2026.3.7

The initial March 7, 2026 fix in c76d29208bf6a7f058d2cf582519d28069e42240 added approval binding for shell scripts and a narrow interpreter set, but follow-up maintainer review on March 8, 2026 found that bun and deno script operands still did not produce mutableFileOperand snapshots.

A complete fix shipped on March 9, 2026 in cf3a479bd1204f62eef7dd82b4aa328749ae6c91, which binds approved bun and deno run script operands to on-disk file snapshots and denies post-approval script drift before execution.

Affected Packages / Versions

  • Package: openclaw (npm)
  • Affected versions: <= 2026.3.7
  • Patched version: 2026.3.8

Fix Commit(s)

  • c76d29208bf6a7f058d2cf582519d28069e42240
  • cf3a479bd1204f62eef7dd82b4aa328749ae6c91

Release Verification

  • npm 2026.3.7 remains vulnerable.
  • npm 2026.3.8 contains the completed fix.

Thanks @tdjackey for reporting.

References

@steipete steipete published to openclaw/openclaw Mar 10, 2026
Published to the GitHub Advisory Database Mar 12, 2026
Reviewed Mar 12, 2026
Last updated Mar 12, 2026

Severity

Moderate

CVSS overall score

This score calculates overall vulnerability severity from 0 to 10 and is based on the Common Vulnerability Scoring System (CVSS).
/ 10

CVSS v3 base metrics

Attack vector
Network
Attack complexity
Low
Privileges required
Low
User interaction
None
Scope
Unchanged
Confidentiality
Low
Integrity
Low
Availability
Low

CVSS v3 base metrics

Attack vector: More severe the more the remote (logically and physically) an attacker can be in order to exploit the vulnerability.
Attack complexity: More severe for the least complex attacks.
Privileges required: More severe if no privileges are required.
User interaction: More severe when no user interaction is required.
Scope: More severe when a scope change occurs, e.g. one vulnerable component impacts resources in components beyond its security scope.
Confidentiality: More severe when loss of data confidentiality is highest, measuring the level of data access available to an unauthorized user.
Integrity: More severe when loss of data integrity is the highest, measuring the consequence of data modification possible by an unauthorized user.
Availability: More severe when the loss of impacted component availability is highest.
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:L

EPSS score

Weaknesses

Improper Authorization

The product does not perform or incorrectly performs an authorization check when an actor attempts to access a resource or perform an action. Learn more on MITRE.

Time-of-check Time-of-use (TOCTOU) Race Condition

The product checks the state of a resource before using that resource, but the resource's state can change between the check and the use in a way that invalidates the results of the check. Learn more on MITRE.

CVE ID

No known CVE

GHSA ID

GHSA-8g75-q649-6pv6

Source code

Credits

Loading Checking history
See something to contribute? Suggest improvements for this vulnerability.