T01 · Skill Instruction Hijacking
- Location
scripts/build_checkpoint.py:23- Finding
Untrusted checkpoint content can inject automatically dispatched resume instructions
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill has a legitimate restart-recovery purpose, but saved task text can become automatic resume messages sent to other sessions, so it needs review before use.
Review this skill before installing or using it in workspaces with sensitive tasks. Treat checkpoints as untrusted data, inspect generated recovery plans before sending them, avoid automatic sessions_send for free-form recovered messages, and store checkpoint/temp files in private locations with restrictive permissions.
scripts/build_checkpoint.py:23Untrusted checkpoint content can inject automatically dispatched resume instructions
scripts/smoke_test.sh:35Predictable shared temporary files expose and permit tampering with recovery plans
The skill instructs use of file reads/writes and local script execution workflows but does not declare any explicit tool scope or allowed-tools boundary. That omission increases the chance the skill will run with broader-than-necessary capabilities, making misuse or accidental access to local files and environment data more likely in a restart/recovery context.
The script serializes stdin-provided session data directly into a persistent checkpoint file, and the fields included (goal, lastDone, nextStep, blockers, resume message) can easily contain sensitive task context, secrets, internal paths, or user data. In a restart-recovery skill, persisting in-progress multi-agent state is expected, but doing so without minimization, redaction, or an explicit warning increases the chance of unintended sensitive data retention on disk.
These lines invoke several subordinate scripts and include an 'execute_verified_recovery' step, which may perform consequential actions, but the shell file provides no comments or pre-execution notice describing that subprocess-driven recovery logic will run. The final summary output does not satisfy the requirement for advance disclosure of safety-relevant subprocess execution.
The example note is written only in Chinese: “配置已更新并重启;将按 checkpoint 恢复中断任务。” This introduces a locale-specific instruction in the skill guidance without offering a language choice or explaining that the workflow is intended for a Chinese-only environment.
This markdown file contains user-facing template text in Chinese for status updates and manual confirmations. Because the file does not indicate that the skill is region-specific or that the user can choose the language, it may violate language/locale policy requirements.
The script writes recovery state and generated artifacts into shared workspace and temporary locations such as "$WS/tmp", "$WS/memory/restart-checkpoints", and "$TMPDIR" without creating isolated, permission-restricted files. If those paths are writable or observable by other local users/processes, sensitive session state could be disclosed or files could be replaced via symlink or race attacks, causing checkpoint corruption or unsafe downstream processing.