Back to skill

Security audit

Pinterest Trends Dashboard

Security checks for vulnerabilities and agentic risk

Overview

This is a coherent dashboard specification and mockup skill; its main risks are disclosed deployment examples and browser mockup dependencies, not hidden or destructive behavior.

Before using this in production, pin and bundle frontend dependencies instead of relying on mutable CDN scripts, and only enable cron jobs, auto-deploy, analytics, or affiliate-link generation when you have intentionally configured those workflows.

Vulnerability Patterns
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • 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)

T08 · Insecure Dependencies

Warning
Location
DESIGN_MOCKUPS/preview.html:7
Finding

Unpinned Third-Party Scripts Executed Without Integrity Verification

Content
View full analysis

Vulnerability Details

File Location: DESIGN_MOCKUPS/preview.html, lines 7–10
Vulnerability Type: Third-party supply-chain exposure through mutable CDN resources
Risk Level: Medium

html
<script src="https://cdn.tailwindcss.com"></script>
<script src="https://unpkg.com/react@18/umd/react.production.min.js"></script>
<script src="https://unpkg.com/react-dom@18/umd/react-dom.production.min.js"></script>
<script src="https://unpkg.com/@babel/standalone/babel.min.js"></script>

Technical Analysis

Opening the mockup causes the browser to download and execute four scripts from third-party CDNs. The Tailwind CSS and Babel URLs do not specify versions. The React URLs use the mutable major-version alias @18 rather than immutable, exact versions. None of the script elements provides a Subresource Integrity (integrity) hash.

Consequently, the code executed by the page can change after the project has been audited. A compromised CDN, upstream package release, account, or delivery path could substitute hostile JavaScript. The browser would execute that code with the page's origin and browser privileges.

Attack Path

  1. An attacker compromises a referenced CDN, upstream package distribution account, or mutable resource associated with one of the URLs.
  2. The attacker replaces the expected library response with malicious JavaScript.
  3. A user opens DESIGN_MOCKUPS/preview.html while network access is available.
  4. The browser retrieves the altered resource because no immutable local artifact is used.
  5. The browser cannot verify the resource against an expected hash because no integrity attribute is present.
  6. The hostile script executes automatically in the page context.

Impact Assessment

Successful exploitation permits arbitrary client-side JavaScript execution in the mockup's context. The malicious dependency could falsify dashboard and affiliate information, redirect users to attacker-controlled destinations, issue network r ...[truncated 267 chars]

Remediation
View remediation

Remediation Suggestions

  1. Install audited dependencies at exact versions and bundle them into local static assets.
  2. Commit and enforce a dependency lockfile, such as package-lock.json, and use reproducible installation commands such as npm ci.
  3. Remove browser-side Babel and the Tailwind CDN runtime from production or distributable previews; compile JSX and CSS during the build.
  4. If CDN resources remain necessary, reference immutable exact-version URLs and add verified integrity hashes with crossorigin="anonymous".
  5. Add a restrictive Content Security Policy that limits script-src, style-src, font-src, and connect-src to explicitly required origins and avoids allowing unsafe inline or evaluated code.
  6. Automate dependency vulnerability and integrity checks in CI, and review version updates before deployment.
Vulnerability Patterns
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (3)

Autonomous Decision Making

Medium
Category
Excessive Agency
Confidence
85% confidence
Finding

Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.

Content

Scanner excerpt · BRIEF_PRD_ARCH.md (reported line 207)May include surrounding context.

Deploy to Vercel

bash
git push origin main
# Vercel auto-deploys on push

Data Updates

Autonomous Decision Making

Medium
Category
Excessive Agency
Confidence
85% confidence
Finding

Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.

Content

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

Deploy to Vercel

bash
git push origin main
# Vercel auto-deploys on push

Data Updates

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
95% confidence
Finding

The root HTML element sets lang="en", which establishes an English-only locale for the experience. Under the policy, forcing a specific language without user opt-in or justification is a natural-language locale policy concern.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.