Back to skill

Security audit

mo-test-1

Security checks for vulnerabilities and agentic risk

Overview

This skill coherently helps create p5.js generative art, with no evidence of credential access, persistence, local system control, or deceptive behavior.

Before installing, understand that generated HTML pages will load p5.js from cdnjs and fonts from Google, so they are not fully offline/self-contained and will contact third-party services when opened. Consider asking the agent to bundle p5.js locally, add SRI, remove remote fonts, and use neutral branding unless Anthropic-styled output is explicitly desired and permitted.

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
templates/viewer.html:23
Finding

Unverified Remote JavaScript Dependency Allows Supply-Chain Code Execution

Content
View full analysis
``` Related instructions in `SKILL.md:280-302`: ```html ``` ```markdown **CRITICAL**: This is a single artifact. No external files, no imports (except p5.js CDN). Everything inline. ``` ### Technical Analysis The mandatory viewer template executes p5.js directly from cdnjs without a Subresource Integrity (`integrity`) attribute. It also defines no Content Security Policy restricting script execution or subsequent network communication. Although the dependency URL pins p5.js to version 1.7.0 and uses HTTPS, the browser still trusts the remote server to provide executable JavaScript each time the artifact is opened. If the CDN account, hosted asset, or upstream delivery infrastructure is compromised, the remotely supplied payload can change after the skill package has been reviewed. Generated artifacts inherit this behavior because `SKILL.md` requires the template to be used as their starting point. The template additionally loads Google Fonts remotely. These requests disclose routine connection metadata, such as the viewer's IP address and potentially referrer information, and conflict with the documentation's claim that the resulting artifact is self-contained. The font resources are not themselves demonstrated to execute malicious cod ...[truncated 1672 chars]
Remediation
View remediation
``` 3. **Apply a restrictive Content Security Policy** - Prefer bundled scripts and a policy such as `default-src 'none'`. - Explicitly allow only resources required by the artifact. - Restrict `connect-src` to prevent injected code from freely exfiltrating data. - Avoid permitting broad sources, `unsafe-eval`, or unreviewed third-party origins. 4. **Remove external font requests** - Bundle the required font files, use local fallback fonts, or embed reviewed font resources. - If remote fonts are retained, disclose the network and privacy behavior accurately. 5. **Correct the documentation** - Do not describe artifacts as completely self-contained while they require CDN and Google Fonts access. - Document every external origin, the reason it is contacted, and the integrity controls applied. 6. **Add release-time verification** - Check generated artifacts for remote scripts lacking SRI. - Maintain approved dependency hashes and review dependency updates before changing them. - Test generated artifacts with networking disabled to verify ...[truncated 35 chars]
Vulnerability Patterns
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (4)

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The activation criteria are broad enough to trigger on generic art or coding requests, which can cause the skill to engage when the user did not intend this specialized workflow. Over-broad auto-invocation increases the chance of unintended file generation, unnecessary instruction injection into unrelated tasks, and reduced operator control over when branded/template-bound behavior is applied.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

Early documentation states the skill outputs .md files, .html files, and .js files in a two-step workflow. Later sections explicitly require a single HTML artifact with all p5.js code embedded inline and say not to create separate .js files, which directly contradicts the earlier stated output model.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The skill promises original algorithmic art, but then requires copying a fixed Anthropic-branded template verbatim. This creates a provenance and policy risk: users may receive output that is not fully original in presentation, and the model is being instructed to reproduce branded UI without user need or clear authorization. In a skill system, hard-coding exact branded structure also reduces flexibility and can propagate unauthorized brand reuse at scale.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill mandates Anthropic branding and exact UI structure regardless of user intent, which can misattribute authorship, imply endorsement, or produce outputs with unauthorized brand usage. In a multi-tenant assistant environment, forcing branded output without justification is risky because it can systematically propagate misleading or noncompliant artifacts.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.