GHSA-qm9x-v7cx-7rq4HighCVSS 8.8

OpenClaw's system.run allowlist can be bypassed through an unregistered time dispatch wrapper

Published
March 26, 2026
Last Modified
April 10, 2026

🔗 CVE IDs covered (1)

📋 Description

Summary

Allow-always exec approvals did not unwrap /usr/bin/time, so an unregistered time wrapper could bypass executable binding and reuse approval state for the inner command.

Affected Packages / Versions

  • Package: openclaw (npm)
  • Affected: < 2026.3.22
  • Fixed: >= 2026.3.22
  • Latest released tag checked: v2026.3.23-2 (630f1479c44f78484dfa21bb407cbe6f171dac87)
  • Latest published npm version checked: 2026.3.23-2

Fix Commit(s)

  • 39409b6a6dd4239deea682e626bac9ba547bfb14

Release Status

The fix shipped in v2026.3.22 and remains present in v2026.3.23 and v2026.3.23-2.

Code-Level Confirmation

  • src/infra/dispatch-wrapper-resolution.ts now unwraps /usr/bin/time and binds approvals to the real inner executable.
  • src/infra/exec-approvals-allow-always.test.ts ships regression coverage for time-wrapper allow-always approval bypasses.

OpenClaw thanks @YLChen-007 for reporting.

🎯 Affected products1

  • npm/openclaw:< 2026.3.22

🔗 References (6)