T01 · Skill Instruction Hijacking
- Location
scripts/import-soul.sh:42- Finding
Untrusted SOUL instructions are installed and registered without security review
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill is purpose-aligned, but importing packages can install unreviewed agent instructions and handles archives/overwrites too loosely, so it needs Review before use.
Install only if you trust the SOUL packages you will import. Review a package's SOUL.md before importing, avoid --force unless you have backed up the workspace, use a test agent first, and avoid sharing exported archives if the embedded local workspace path is sensitive.
scripts/import-soul.sh:42Untrusted SOUL instructions are installed and registered without security review
scripts/export-soul.sh:20Unvalidated package name permits output path traversal and tar option injection
scripts/import-soul.sh:27Untrusted packages are extracted and copied without archive safety controls or full schema validation
The script’s behavior matches the export portion of the description: it validates a workspace, copies SOUL.md, creates package metadata files, and archives the package. However, the declared purpose says the skill can also import/install soul packages and batch list local packages. Those capabilities are absent from the supplied code chunk. Since the description claims broader functionality than what this code actually implements, this is a description-behavior mismatch.
The skill documentation is entirely written in Chinese, which imposes a specific language on users without indicating that other languages are available. Under the policy, a language constraint should either be optional or clearly justified as region-specific.
This shell script performs file writes into the target workspace and allows overwriting existing content when --force is set. Although there is a refusal message when overwrite is blocked, there is no explicit confirmation prompt or warning describing the consequences of --force before replacing SOUL.md, preview.md, and soul-manifest.json.
The script embeds the full workspace path into both preview.md and manifest.json, then packages those files into the exported archive. If the archive is shared externally, it can disclose local filesystem structure, usernames, project names, or other environment details that the user may not realize are being published.