Back to skill

Security audit

Spike Skill Orchestrator

Security checks for vulnerabilities and agentic risk

Overview

This skill mostly matches its orchestration purpose, but it persistently logs full user task text without clear consent, redaction, retention limits, or a user-controlled storage path.

Review before installing. The main concern is local privacy: tasks you give the agent may be saved verbatim in a persistent log file. Avoid using this skill with secrets, personal data, proprietary code, or sensitive business details unless logging is removed, minimized, or made explicitly opt-in with deletion controls.

Vulnerability Patterns
  • Insecure Skill Coding PracticesFinds exploitable flaws such as hardcoded secrets or command injection
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • 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 (1)

T09 · Insecure Skill Coding Practices

Warning
Location
scripts/log-decision.mjs:6
Finding

Unredacted User Task Content Persisted in Plaintext

Content
View full analysis
s.trim()).filter(Boolean) : [], accepted: args.accepted ? args.accepted.split(",").map((s) => s.trim()).filter(Boolean) : [], mode: args.mode || "unknown", }; fs.mkdirSync(path.dirname(LOG_PATH), { recursive: true }); fs.appendFileSync(LOG_PATH, `${JSON.stringify(row)}\n`, "utf-8"); ``` The logging behavior is mandated by `SKILL.md:91-112`, which instructs the agent to pass the complete user task through the `--task` argument after every proposal. ### Technical Analysis The logger writes the entire user task to a persistent JSONL file without data minimization, secret redaction, explicit user consent, retention controls, or restrictive file permissions. User tasks may contain credentials, API tokens, personal information, proprietary source code, internal infrastructure details, or other confidential content. `fs.appendFileSync` uses the process's normal file-creation behavior and does not explicitly require permissions such as `0600`. The fixed, developer-specific absolute path also causes the script to write outside its installation directory and may create an unexpected directory hierarchy through `fs.mkdirSync`. There is no remote exfiltration or privilege escalation in the reviewed code. Exploitation requires another process or user to have permission to read the resulting workspace file. ### Attack Path 1. A user submits a task containing confidential information, such as an API token, internal code, or personal data. 2. The Skill proposes one ...[truncated 999 chars]
Remediation
View remediation
Vulnerability Patterns
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • 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 (7)

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 55)May include surrounding context.

md
- 只有 1 个高置信单 skill,且很明显:直接加载该 `SKILL.md`

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 78)May include surrounding context.

md
- 只有 1 个高置信单 skill,且很明显:直接加载该 `SKILL.md`

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The README describes invocation examples entirely in Chinese (e.g. "该用什么 skill", "调度一下") as user-facing trigger phrases, but does not mention any alternative language option or that Chinese is optional. This creates a locale/language policy concern because the skill appears tailored to a specific language without documenting user choice or justification.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The activation description includes generic phrases such as “调度一下”, “有没有相关 skill”, and “搭配使用”, along with broad conditions like any multi-step or cross-domain request. In a manifest/markdown context, these triggers are not narrowly scoped enough and could cause the skill to activate for many routine requests beyond the intended orchestration use case.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The skill instructs the agent to log the raw task text, proposed skills, accepted skills, and decision mode to a persistent local JSONL file without any explicit notice, consent, minimization, or retention controls. User tasks can easily contain sensitive information, so this creates a privacy and data-handling risk through silent persistence and possible later access by other local processes or operators.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
80% confidence
Finding

The candidate sort uses localeCompare with the fixed locale "zh-CN", which imposes a specific language/locale behavior in the skill's output logic. The file does not provide a user opt-in, fallback, or explanation that this locale restriction is intentional or region-specific.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
80% confidence
Finding

The combo ranking sort again forces "zh-CN" collation, creating a natural-language policy issue by enforcing a specific locale across outputs. No surrounding comments or interface indicate that users can select or decline this locale behavior.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.