Repository navigation
Security fix
Fixes #6: sandbox-confined sessions could create cron jobs that executed with host privileges, through agent access overrides, command tasks, or delivery commands.
- Mutating cron tools now require effective
danger-full-accesssandbox permissions andneverapproval. Restricted, Auto, unresolved, and unavailable permissions fail closed. - Manual jobs carry authorization bound to their exact spec, with checks before dispatch and delivery, including after waiting for execution capacity.
- Command and delivery processes use an explicit environment allowlist. Additional variable names must be granted by the operator through
commandEnv. - Explicit agent access setup errors stop the run before prompt submission.
- HTTP write endpoints require an independent operator token, preventing loopback HTTP from bypassing tool authorization.
Upgrade requirements
- Existing manual jobs are quarantined until reviewed and saved again. Job specs and history are retained. Review task, access, cwd, and delivery, then use Edit → Save. Enable and Run now cannot bypass this check.
- Web writes require
webControlToken: configure a random secret of at least 32 characters in protected host configuration. The UI prompts for it and keeps it only in memory. Unset/short tokens disable web writes. Never share it with a restricted agent; use HTTPS for remote access. - Cron remains host administration: this release does not add sandboxed cron execution for restricted sessions. Config-declared and plugin-registered jobs remain trusted host declarations.
- Scripts that relied on inherited application credentials must explicitly configure required environment variable names in
commandEnv.
See README / README.zh-CN.md for the full security boundary and migration details.
Compatibility and validation
- Includes declared dsh
0.2.0-rc.2compatibility. - All 109 tests passed, including security, migration/restart, environment filtering, and browser token flow regressions.
- Authorization schema round-trip and module imports checked against installed dsh 0.2 host packages.
Install
dsh plugin --profile web add https://github.com/squirrel20/dsh-cron/releases/download/v0.14.5/dsh-cron.tgzThe npm package named dsh-cron is unrelated. Install this GitHub Release asset or use the Plugin Market.