T01 · Skill Instruction Hijacking
- Location
SKILL.md:444- Finding
Untrusted Notion Content Is Treated as Executable Agent Instructions
- Content
View full analysis
]() [ / / type={ cadence=}{ last_done=} / effort=] ## Description ## Subtasks (N) - [Status] -> /agency-os start - ... ## Latest discussion entry (of total) (For older entries: /agency-os show --section discussion --entry ) ## Corpus: ## General guidance ``` 6. End with: `Brief loaded. Proceed.` ``` The resulting brief is then used by execution agents as follows: ```text Every spawned agent: 1. Calls `/agency-os start ` to load the kickoff brief AND flip the row To-Do -> In Progress. This MUST be the first call; if the row is already In Progress (re-dispatch), `start` is idempotent and re-emits the brief. 2. **Runnability check:** can this task plausibly be completed end-to-end by an agent, or does it require operator action (logging into a personal account, solving a captcha, clicking publish in a UI without API access)? - If operator-only: call `/agency-os log "blocked-operator: "`, then `/agency-os move --to discussion`, then emit the result report (step 6) with `status: blocked-operator`. Do not skip the status flip. 3. Otherwise: execute the brief end-to-end. 4. **Self-assessment.** Before closing: did I complete 100% of the acceptance criteria? Partial completions are **not** Done. ``` ### Technical Analysis The Skill imports mutable content from Notion into an execution-agent prompt, including the complete task ...[truncated 3116 chars]- Remediation
View remediation
... ``` Instruct the agent to extract requirements from this content but never execute embedded meta-instructions automatically. 4. Before dispatch, display the complete proposed action set rather than only a 200-character preview. Highlight requests involving: - Shell execution. - Network transmission. - Credential or secret access. - Repository writes. - Deployment or publication. - Destructive or irreversible operations. 5. Require separate user confirmation for privileged operations, even after `/agency-os run --go`. 6. Validate and expose the Notion author and last editor for each approved task. Reapproval should be required when executable content changes after approval. 7. Prefer the canonical local General Guidance file over a mutable Notion mirror when constructing execution prompts. 8. Restrict Notion write access and integration permissions to the minimum set of trusted users and databases. 9. Record a hash or revision identifier at approval time and refuse execution if the task content has changed afterward. 10. Give spawned agents narrowly scoped tools and credentials appropriate to each task rather than inheriting broad session permissions. ]]>
