Peter Steinberger
939b18475d
fix(exec): honor shell comments in allow-always analysis
2026-03-07 23:31:25 +00:00
Peter Steinberger
b1c30f0ba9
refactor: dedupe cli config cron and install flows
2026-03-02 19:57:33 +00:00
Peter Steinberger
155118751f
refactor!: remove versioned system-run approval contract
2026-03-02 01:12:53 +00:00
Peter Steinberger
a1c4bf07c6
fix(security): harden exec wrapper allowlist execution parity
2026-02-24 01:52:17 +00:00
Peter Steinberger
862975507a
refactor(exec): split command resolution and trusted-dir normalization
2026-02-22 23:00:33 +01:00
Peter Steinberger
64b273a71c
fix(exec): harden safe-bin trust and add explicit trusted dirs
2026-02-22 22:43:18 +01:00
Peter Steinberger
3f0b9dbb36
fix(security): block shell-wrapper line-continuation allowlist bypass
2026-02-22 22:36:29 +01:00
Peter Steinberger
a96d89f343
refactor: unify exec wrapper resolution and parity fixtures
2026-02-22 10:26:44 +01:00
Peter Steinberger
2b63592be5
fix: harden exec allowlist wrapper resolution
2026-02-22 09:52:02 +01:00
Peter Steinberger
f23da067f6
fix(security): harden heredoc allowlist parsing
2026-02-21 14:27:51 +01:00
orlyjamie
92cada2aca
fix(security): block command substitution in unquoted heredoc bodies
...
The shell command analyzer (splitShellPipeline) skipped all token
validation while parsing heredoc bodies. When the heredoc delimiter
was unquoted, bash performs command substitution on the body content,
allowing $(cmd) and backtick expressions to execute arbitrary commands
that bypass the exec allowlist.
Track whether heredoc delimiters are quoted or unquoted. When unquoted,
scan the body for $( , ${ , and backtick tokens and reject the command.
Quoted heredocs (<<'EOF' / <<"EOF") are safe - the shell treats their
body as literal text.
Ref: https://github.com/openclaw/openclaw/security/advisories/GHSA-65rx-fvh6-r4h2
2026-02-21 14:27:35 +01:00
Peter Steinberger
a688ccf24a
refactor(security): unify safe-bin argv parsing and harden regressions
2026-02-19 16:04:58 +01:00
Peter Steinberger
0e85380e56
style: format files and fix safe-bins e2e typing
2026-02-19 14:26:12 +01:00
Peter Steinberger
cfe8457a0f
fix(security): harden safeBins stdin-only enforcement
2026-02-19 14:10:45 +01:00
Peter Steinberger
b73a2de9f6
refactor(infra): reuse shared home prefix expansion
2026-02-18 17:48:02 +00:00
Peter Steinberger
b8b43175c5
style: align formatting with oxfmt 0.33
2026-02-18 01:34:35 +00:00
Peter Steinberger
31f9be126c
style: run oxfmt and fix gate failures
2026-02-18 01:29:02 +00:00
cpojer
d0cb8c19b2
chore: wtf.
2026-02-17 13:36:48 +09:00
Sebastian
ed11e93cf2
chore(format)
2026-02-16 23:20:16 -05:00
cpojer
90ef2d6bdf
chore: Update formatting.
2026-02-17 09:18:40 +09:00
Peter Steinberger
24d2c6292e
refactor(security): refine safeBins hardening
2026-02-14 19:59:13 +01:00
Peter Steinberger
77b89719d5
fix(security): block safeBins shell expansion
2026-02-14 19:44:14 +01:00
Peter Steinberger
e1e05e57cb
refactor(utils): share shell argv tokenizer
2026-02-14 15:39:46 +00:00
Peter Steinberger
83bc73f4ea
refactor(exec-approvals): split allowlist evaluation module
2026-02-13 19:08:37 +00:00
Peter Steinberger
81fbfa06ee
refactor(exec-approvals): extract command analysis module
2026-02-13 19:08:37 +00:00