Back to skill

Security audit

Incident Dossier

Security checks for vulnerabilities and agentic risk

Overview

This skill is a straightforward local incident-report helper, with one limited report-rendering risk to keep in mind.

Installers should treat generated dossiers as summaries of potentially untrusted evidence. Review raw source lines before relying on conclusions, and open generated Markdown in a renderer that disables raw HTML and remote resource loading when evidence may be adversarial.

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/build_incident_dossier.js:25
Finding

Unescaped Markdown and HTML Injection in Generated Incident Reports

Content
View full analysis
`${k} (${v})`).join(', ') || 'none'}`, ''); lines.push('## Evidence'); for (const item of evidence) lines.push(`- ${item.path} — ${item.kind}`); lines.push('', '## Timeline'); if (!events.length) lines.push('- No structured events extracted.'); else for (const e of events.slice(0, 50)) lines.push(`- ${e.ts ?? 'no-ts'} · ${e.kind} · ${e.job_id ?? 'no-job-id'} · ${path.basename(e.source)}`); ``` ### Technical Analysis The script extracts `ts`, `kind`, and `job_id` values from user-selected JSON or JSONL evidence and interpolates them directly into a Markdown report. Input paths are also written to the report without escaping. The affected values can contain line breaks, Markdown syntax, links, images, or raw HTML. Because the script does not normalize or escape these constructs, malicious evidence can alter the structure and rendered meaning of the generated dossier. The effect depends on the Markdown renderer used to open the report. A renderer that permits raw HTML or loads remote images may display attacker-controlled content or initiate remote-resource requests. Even a restrictive renderer may display fabricated headings, timelines, links, or recommendations. ### Attack Path 1. An attacker supplies or modifies an operational JSON or JSONL artifact that an analyst is expected to investigate. 2. The attacker places Markdown or HTML content in a recognized field such as `status`, `eve ...[truncated 1542 chars]
Remediation
View remediation
Vulnerability Patterns
  • 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
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep

Static analysis

No suspicious patterns detected.