teach-course-builder
Pass
Audited by Gen Agent Trust Hub on Mar 29, 2026
Risk Level: SAFECOMMAND_EXECUTIONPROMPT_INJECTIONDATA_EXFILTRATION
Full Analysis
- [COMMAND_EXECUTION]: The skill generates proposed shell commands for building courses by interpolating data extracted from local markdown files directly into CLI arguments.
- Evidence: In
analyze-sources.ts, functions such asextractTitleandextractDescriptionpull text directly from the source markdown files. Thetemplates/course-plan.mdfile then uses these values indeno runcommand templates (e.g.,--title "{{title}}"). - Impact: If a source document contains shell metacharacters or backticks (e.g., a title containing
" && rm -rf / && "), the resulting command string could execute unintended shell operations when run in a terminal. - [PROMPT_INJECTION]: The skill is vulnerable to indirect prompt injection because it processes untrusted local documents and reflects their content into the agent's context and proposed actions.
- Ingestion points:
analyze-sources.tsrecursively scans directories and reads all.mdfiles provided as input. - Boundary markers: Absent. The skill does not use specific delimiters or provide instructions to the agent to ignore potentially malicious commands embedded within the source documents.
- Capability inventory: The skill has capabilities to read local files (
--allow-read), access environment variables (--allow-env), and perform network requests (--allow-net) via Deno. - Sanitization: Absent. The
extractTitleandextractDescriptionfunctions inanalyze-sources.tsdo not sanitize or escape extracted content before including it in the course plan or build commands. - [DATA_EXFILTRATION]: The skill is designed to send local file content to a network endpoint defined by configuration.
- Evidence:
scripts/add-lesson.tsreads the content of local markdown files and sends it to the API endpoint defined by theTEACH_API_URLenvironment variable via theapiPostfunction inscripts/api-client.ts. - Impact: While the default configuration targets a local development server (
localhost:4100), if the environment variable is manipulated to point to an external domain, the skill would effectively exfiltrate the contents of any processed files to that remote server.
Audit Metadata