Back to skill

Security audit

hot-topic-ideator

Security checks for vulnerabilities and agentic risk

Overview

The skill mostly matches its Xiaohongshu report-writing purpose, but generated reports load mutable third-party JavaScript and the fallback/search data flows are not clearly consent-scoped.

Review this skill before installing in confidential brand or agency workflows. Avoid including sensitive campaign strategy unless you are comfortable sending derived keywords to ChatDAM and possibly web search providers, and consider removing or vendoring the Tailwind CDN script so generated reports work offline without executing third-party JavaScript.

Vulnerability Patterns
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • 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
  • 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)

T03 · Remote Payload Retrieval and Execution

Warning
Location
SKILL.md:413
Finding
Generated Reports Execute Mutable Remote JavaScript<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md`, line 413 **Vulnerability Type**: Remote JavaScript retrieval and execution **Risk Level**: Medium ### Vulnerable Code ```html <script src="https://cdn.tailwindcss.com"></script> ``` ### Technical Analysis The Skill instructs the agent to embed an unversioned Tailwind CDN script in every generated HTML report. When a report is opened, the browser retrieves and executes the current JavaScript served by `cdn.tailwindcss.com`. The remote payload is not included in the audited project, is not pinned to an immutable version, and has no Subresource Integrity hash. Consequently, its effective behavior can change after the Skill has been reviewed. Compromise of the CDN, its upstream publishing process, or the delivery path could cause attacker-controlled JavaScript to execute in generated reports. This also conflicts with the Skill's stated requirement that reports be single-file documents without external dependencies. ### Attack Path 1. The agent follows `SKILL.md` and generates an HTML report containing the prescribed script element. 2. An attacker compromises the CDN distribution path, upstream publishing process, or content returned from the unpinned endpoint. 3. A user opens the generated report while network access is available. 4. The browser downloads the modified JavaScript from the external endpoint. 5. The attacker-controlled script executes in the report's browser context. 6. The script can inspect or alter report content and initiate outbound network requests, potentially disclosing data embedded in the report. ### Impact Assessment The remote script receives JavaScript execution privileges within the generated report's browser context. A malicious payload could: - Read sensitive brand, audience, campaign, note, and analytics information embedded in the report. - Modify findings or recommendations displayed to the user. - Exfiltrate report content through outbound requests, subje ...[truncated 429 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. Remove the runtime Tailwind CDN script from generated reports. 2. Compile the required Tailwind styles during report generation and embed the resulting CSS directly into the single HTML file. 3. Include only the CSS classes used by the report to minimize the embedded stylesheet. 4. Add a restrictive Content Security Policy, for example: ```html <meta http-equiv="Content-Security-Policy" content="default-src 'none'; style-src 'unsafe-inline'; img-src data:; font-src data:;"> ``` 5. If a remote resource is strictly unavoidable: - Use an immutable, explicitly versioned asset. - Pin it with a verified Subresource Integrity hash. - Set an appropriate `crossorigin` attribute. - Restrict permitted sources with a Content Security Policy. - Vendor and review the exact dependency before deployment. 6. Validate the final HTML in an offline environment to confirm that it renders without external network access. ]]>
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (5)

Missing User Warnings

Medium
Confidence
91% confidence
Finding
The skill requires an API token and sends user-derived search keywords to external APIs, but it does not clearly warn the user about network transmission, third-party processing, or possible exposure of sensitive brand/project information. In enterprise or agency settings, campaign plans, client names, and internal strategy terms may be confidential, making silent outbound requests materially risky.

Description-Behavior Mismatch

Medium
Confidence
90% confidence
Finding
The manifest frames this skill as generating Xiaohongshu hot-topic ideas and content creativity for social-media planning. However, the documented behavior expands into producing an HTML file at a filesystem path and invoking a PDF conversion script, which is a materially broader operational scope than ideation alone.

Context-Inappropriate Capability

Medium
Confidence
89% confidence
Finding
The fallback to web_search expands data collection beyond the declared ChatDAM/Xiaohongshu API workflow and can send user/brand queries to broader external services without clear necessity or consent. That widens privacy exposure and can produce less controlled, less trustworthy inputs that may influence downstream report content.

Natural-Language Policy Violations

Medium
Confidence
95% confidence
Finding
The example output hard-codes the document language as zh-CN and the entire skill is framed as producing Chinese-language Xiaohongshu reports, with no opt-in or alternative language path. This is a natural-language locale constraint that should either be user-selectable or explicitly justified as a region-specific tool.

Missing User Warnings

Low
Confidence
85% confidence
Finding
The skill instructs creating files and generating a PDF in the local workspace without an explicit user-facing warning or confirmation. Unannounced filesystem writes are risky because they can surprise users, overwrite existing artifacts, or be abused in larger automated workflows to persist unwanted content.

Static analysis

No suspicious patterns detected.