Back to skill

Security audit

design-deep-research

Security checks for vulnerabilities and agentic risk

Overview

The skill’s design-research purpose is coherent, but its HTML report workflow can place untrusted user or web content into a browser-viewed report without required sanitization.

Review before installing if you will research confidential projects or open generated reports in a browser. Prefer using it only with non-sensitive briefs unless the workflow is updated to sanitize report content, validate links and image URLs, and avoid overwriting existing output directories.

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
references/report-template.html:271
Finding

Unescaped Dynamic Content in Generated HTML Reports

Content
View full analysis

{TITLE}

{SUBTITLE}

Research Overview

{SOURCE_COUNT}
Collected Assets
{DIRECTION_COUNT}
Design Directions
{PLATFORM_COUNT}
Platforms Covered

Research requirement: {REQUIREMENT}

Research scope: {SCOPE}

Keywords: {KEYWORDS}

{REFERENCE_ANALYSIS}
Remediation
View remediation
`, `"`, and `'`. - Do not rely on the language model to perform encoding consistently. 2. **Sanitize intentional HTML** - If placeholders such as `{DIRECTIONS}` must contain markup, process them with a maintained allowlist-based HTML sanitizer. - Permit only necessary structural elements and safe attributes. - Reject scripts, iframes, embedded objects, forms, event-handler attributes, inline executable content, and unsafe SVG or MathML. 3. **Validate URLs** - Parse source and image URLs before inserting them. - Permit only explicitly required schemes, normally `https`. - Reject `javascript:`, `data:`, `file:`, and other unnecessary schemes. - Where practical, restrict URLs to the expected research-platform domains. 4. **Separate data from presentation** - Store research results as structured data. - Render plain text through safe text-node APIs rather than string concatenation. - Use explicit, reviewed rendering functions for galleries, source links, and direction cards. 5. **Add browser-side defense in depth** - Add a restrictive Content Security Policy that disallows inline scripts, plugins, framing, and unapproved network destinations. - Avoid inline event handlers entirely. - Add safe link attributes such as `rel="noopener noreferrer"` to external links opened in new tabs. 6. **Document and test the security boundary** - Update `SKILL.md` to state that user input and harvested content are untrusted. - Add test cases containing HTML tags, event handlers, dangerous URL schemes, malformed attributes, SVG payloads, and closing-tag injection. - Verify that generated reports display these payloads as inert text or remove them safely. ]]>
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Behavioral ASTexec() Call, eval() Call, Dynamic Import
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (7)

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The skill directs parallel web harvesting across many third-party platforms but provides no warning that external network access will occur or that user-provided briefs and reference URLs may influence outbound requests. This can expose sensitive project interests, leak browsing metadata to third parties, and violate user expectations or enterprise network/privacy policies.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

This HTML template sets the document language to zh-CN and uses Chinese text throughout titles, section headers, labels, and footer content. That imposes a specific language/locale by default, and the file does not indicate any user choice, opt-in, or region-specific justification for this constraint.

Content

No source excerpt is available for this finding.

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
94% confidence
Finding

The skill explicitly instructs the agent to create a workspace directory and multiple files under design-research/[brief-slug]/ without telling the user that local files will be created or modified. This is not overtly malicious, but it is a real safety issue because silent filesystem writes can surprise users, overwrite existing artifacts, or persist sensitive research content in the workspace.

Content

No source excerpt is available for this finding.

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
92% confidence
Finding

The HTML report generation step writes a standalone report.html artifact without explicitly informing the user beforehand. Even though generating a report is central to the skill’s purpose, undisclosed output creation can still cause unexpected persistence of potentially sensitive research results and may overwrite prior reports.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
85% confidence
Finding

This JSON file contains a Chinese-language prompt in one eval and English-language prompts and expectations elsewhere, but it does not indicate whether the skill should respond in a user-selected language or whether bilingual behavior is intentional. That can create an implicit language policy issue if the skill defaults to or forces a language without user opt-in.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
79% confidence
Finding

The title includes Chinese text alongside English, which imposes a specific language/locale element in the skill content without any user opt-in or explanation of why that locale is required. Under the policy rule, language constraints should be optional or clearly justified.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
92% confidence
Finding

The document explicitly instructs users to use English queries for several platforms and later Chinese keywords/search for regional platforms. This is a natural-language locale policy constraint presented as a default requirement, but it does not offer opt-in choice or explain a compliance-driven need for forcing those languages.

Content

No source excerpt is available for this finding.