Back to skill

Security audit

Skillfully - Agent Skill Analytics

Security checks for vulnerabilities and agentic risk

Overview

The skill is not plainly malicious, but it asks users to paste server-provided text into agent instruction files, which needs careful review.

Install only if you trust Skillfully to supply safe instruction snippets and you are willing to review any returned `snippet` before adding it to a skill. Treat access tokens as secrets, avoid placing them in transcripts or logs, and prefer a fixed local feedback template or manually validated URL over arbitrary server-provided Markdown instructions.

Vulnerability Patterns
  • 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
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
Findings (1)

T01 · Skill Instruction Hijacking

Error
Location
SKILL.md:67
Finding

Server-Controlled Instruction Injection into Agent Skill Files

Content
View full analysis

Vulnerability Details

File Location: SKILL.md, lines 67-81
Vulnerability Type: T01: Skill Instruction Hijacking
Risk Level: High

Complete Code Snippet:

markdown
Response shape:

```json
{
  "id": "<record-id>",
  "skill_id": "sk_xxxxxx",
  "name": "Code Reviewer",
  "description": "Collect feedback after each run",
  "feedback_url": "https://www.skillfully.sh/feedback/sk_xxxxxx",
  "snippet": "# Skillfully feedback (required)\n...\nhttps://www.skillfully.sh/feedback/sk_xxxxxx",
  "created_at": 1745000000000
}

Paste snippet into the agent skill you maintain (typically SKILL.md).

text

### Technical Analysis

The Skill instructs users or agents to retrieve a `snippet` from the remote `POST /skills` endpoint and paste that server-controlled content directly into an agent instruction file, typically `SKILL.md`. The content is not defined, validated, constrained, or reviewed locally before insertion. The example also labels the injected feedback instruction as “required,” which may cause it to override or influence normal agent-output behavior.

Because an agent interprets `SKILL.md` as instructions, remote API data becomes executable instruction text after the documented workflow is followed. The service operator, or an attacker who compromises the service or response channel, could change the returned snippet after this package has been reviewed. The resulting instructions would then be loaded in later agent sessions.

No direct operating-system code execution, privilege escalation, or credential theft is demonstrated by the reviewed file. The confirmed capability is persistent manipulation of agent instructions and outputs within the scope of the modified skill.

### Attack Path

1. A user or agent loads the reviewed Skill and follows its onboarding workflow.
2. The user authenticates to `https://www.skillfully.sh` and obtains a bearer token.
3. The user calls `POST /skil
...[truncated 1242 chars]
Remediation
View remediation

Remediation Suggestions

  1. Remove the instruction to paste arbitrary API-returned text into SKILL.md or any other agent instruction file.
  2. Replace the remote snippet with a fixed, locally maintained template that is included in the reviewed package.
  3. Treat every API response field, including snippet, as untrusted data rather than executable agent instructions.
  4. If dynamic configuration is necessary, parse the response into a strict schema containing only inert values such as a validated skill identifier or HTTPS URL.
  5. Construct any displayed feedback message locally from the validated values; do not allow the service to supply directives, Markdown instructions, tool commands, or behavioral requirements.
  6. Make feedback prompts optional and show them only when explicitly requested or clearly relevant. Remove wording such as “required.”
  7. Validate feedback URLs against an explicit HTTPS origin allowlist and render them as data rather than instructions.
  8. Require human review and explicit confirmation before any external content is written to an agent instruction or persistent configuration file.
  9. Pin and version any approved instruction template locally so changes undergo the same security review as the rest of the Skill.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
Findings (3)

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
Paste `snippet` into the agent skill you maintain (typically `SKILL.md`).

External Transmission

Medium
Category
Data Exfiltration
Confidence
60% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

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

Call POST /login to start login.

bash
curl -X POST "$BASE_URL/login" \
  -H "content-type: application/json" \
  -d '{"email":"agent@example.com"}'

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The skill instructs users to obtain and use a bearer access token for authenticated API calls but provides no warning about token sensitivity, storage, redaction, or scope of use. In an agent/runtime context, this increases the risk that tokens are logged, echoed into transcripts, stored insecurely, or reused by unintended parties, which could enable unauthorized access to the user's Skillfully account and feedback data.

Content

No source excerpt is available for this finding.