Skip to content

Cherry-pick: security FS write hardening #732

@alexey-pelykh

Description

@alexey-pelykh

Summary

Cherry-pick 14 upstream commits that harden filesystem write operations across the codebase: atomic file writes, archive extraction parity, sandbox media staging, zip race handling, workspace bootstrap boundary reads, and centralized safe-write patterns.

Upstream Commits

Hash Subject
17ede52a4 fix(security): harden sandbox media staging destination writes
0dbb92dd2 fix(security): harden tar archive extraction parity
18f8393b6 fix: harden sandbox writes and centralize atomic file writes
14c93d264 docs(changelog): add skills archive extraction hardening note
4a8031162 refactor(security): split sandbox media staging and stream safe copies
07b16d5ad fix(security): harden workspace bootstrap boundary reads
104d32bb6 fix(security): unify root-bound write hardening
d3e8b17aa fix: harden webhook auth-before-body handling
d4bf07d07 refactor(security): unify hardened install and fs write flows
7dac9b05d fix(security): harden zip write race handling
83c8406f0 refactor(security): split gateway auth suites and share safe write path checks
718d418b3 fix(daemon): harden launchd plist with umask 077 (openclaw#31919)
a8fe8b6bf test(guardrails): exclude suite files and harden auth temp identity naming
ee68fa86b fix: harden plugin command registration + telegram menu guard (openclaw#31997)

Adaptation Notes

  • Some commits introduce new files (src/infra/fs-safe.ts, src/infra/archive.ts) — these are NEW_UPSTREAM, safe to create
  • PARTIAL commits touch gutted paths (skills-install, sandbox) — discard gutted file changes, keep infra hardening
  • src/node-host/, src/plugin-sdk/, src/browser/ files are alive in fork
  • Verify no references to gutted layers remain after cherry-pick

Scoring

Auto-qualifier: pure security hardening of gateway/infrastructure layer.

Metadata

Metadata

Assignees

No one assigned

    Labels

    cherry-pickCherry-pick from upstream

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions