Back to skill

Security audit

Soul Pack

Security checks for vulnerabilities and agentic risk

Overview

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.

Vulnerability Patterns
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Insecure Skill Coding PracticesFinds exploitable flaws such as hardcoded secrets or command injection
  • Agent Memory PoisoningWrites attacker-controlled rules into memory that affect later sessions
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
Findings (3)

T01 · Skill Instruction Hijacking

Error
Location
scripts/import-soul.sh:42
Finding

Untrusted SOUL instructions are installed and registered without security review

Content
View full analysis
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Warning
Location
scripts/export-soul.sh:20
Finding

Unvalidated package name permits output path traversal and tar option injection

Content
View full analysis
"$PKG_DIR/preview.md" < "$PKG_DIR/manifest.json" <
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Error
Location
scripts/import-soul.sh:27
Finding

Untrusted packages are extracted and copied without archive safety controls or full schema validation

Content
View full analysis
Remediation
View remediation
Vulnerability Patterns
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (4)

Tp4

High
Category
MCP Tool Poisoning
Confidence
96% confidence
Finding

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.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
89% confidence
Finding

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.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
84% confidence
Finding

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.

Content

No source excerpt is available for this finding.

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
92% confidence
Finding

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.

Content

No source excerpt is available for this finding.