Monitor vulnerabilities like this one. Sign up free to get alerted when software you use is affected.
2.1

OpenClaw: Local File Tampering Through Script Preflight

GHSA-gj9q-8w99-mp8j
Summary

Some versions of OpenClaw, a script tool, allowed a local attacker to tamper with a script file between the time it was checked for safety and the time it was read. This could cause the tool to analyze a different file than expected. The issue is fixed in version 2026.4.10 and later. Update your OpenClaw package to prevent this vulnerability.

What to do
  • Update GitHub Actions openclaw to version 2026.4.10.
Affected software
Ecosystem VendorProductAffected versions
npm GitHub Actions openclaw < 2026.4.10
Fix: upgrade to 2026.4.10
Original title
OpenClaw: TOCTOU read in exec script preflight
Original description
## Summary

OpenClaw's exec script preflight validator previously validated and then read a script by mutable pathname. A local race could swap the path between validation and read, causing preflight analysis to inspect a different file identity than the one that passed the workspace boundary check.

## Affected Packages / Versions

- Package: `openclaw`
- Ecosystem: npm
- Affected versions: `< 2026.4.10`
- Patched versions: `>= 2026.4.10`

## Impact

The impact is limited. This was not arbitrary full-file disclosure through the preflight error path. The validator only surfaced derived preflight content, such as a matched token, a line number, or the first non-empty JavaScript line in one branch. Exploitation also required the ability to mutate the relevant workspace path during the preflight window.

Still, this was a real TOCTOU boundary bug in code that is supposed to reason about workspace-local script files before execution. A file identity that passed the initial boundary validation could differ from the identity that was later read for preflight analysis.

## Technical Details

The vulnerable flow performed separate path validation and file reads in `validateScriptFileForShellBleed`. Because the read was path-based, an attacker with write access to the workspace path could race replacement of the target after validation but before preflight read.

## Fix

PR #62333 replaced the check-then-read flow with a pinned safe-open/read path using the shared `readFileWithinRoot` helper. The fixed path performs boundary verification around the opened file identity and avoids relying on a mutable pathname for the final preflight read. Regression tests cover both pre-open and post-open swap windows.

## Fix Commit(s)

- `b024fae9e5df43e9b69b2daebb72be3469d52e91` (`fix(exec): replace TOCTOU check-then-read with atomic pinned-fd open in script preflight [AI]`)
- PR: #62333

## Release Process Note

The fix first shipped in `v2026.4.10`. Users should upgrade to `openclaw` `2026.4.10` or newer; the latest npm release already includes the fix.

## Credits

Thanks to @kikayli for reporting this issue.
ghsa CVSS4.0 2.1
Vulnerability type
CWE-367
Published: 16 Apr 2026 · Updated: 16 Apr 2026 · First seen: 16 Apr 2026