T08 · Insecure Dependencies
- Location
config-snippet.json:5- Finding
Unpinned npm Package Is Automatically Downloaded and Executed
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill is coherent for feedback-to-code workflows, but it asks users to run mutable third-party code, embed a mutable browser script, and enable cloud sync without enough scoping or safeguards.
Review this skill carefully before installing. Prefer a pinned `pincushion-mcp` version, use local-only mode unless cloud sync is required, avoid placing the widget on sensitive production pages, and store the license key outside the repository or with restrictive permissions.
config-snippet.json:5Unpinned npm Package Is Automatically Downloaded and Executed
SKILL.md:76Mutable Third-Party JavaScript Is Executed in Deployed Application Pages
SKILL.md:52License Credential Is Stored as Plaintext Inside the Project Directory
The skill instructs users to run an MCP server via npx pincushion-mcp without pinning an exact package version or integrity-checked source. Because this server is granted access to local project context and participates in an automated fix loop, a compromised or malicious upstream package update could execute arbitrary code or alter agent behavior with little friction.
The login/authentication step again references npx pincushion-mcp without a pinned version, creating the same supply-chain exposure during an authentication-sensitive workflow. If the package were replaced or tampered with, users could be prompted into leaking credentials, installing backdoors, or trusting a malicious MCP server that has repo-level access.
The skill tells users to embed a remote third-party script directly into their application's root HTML without meaningful security, privacy, or trust-boundary warnings. A remotely hosted script executes with full privileges in the application's origin, so compromise of the vendor, the script distribution path, or misuse of collected page data could expose sensitive DOM content, user sessions, internal routes, or stakeholder information.
The configuration enables --cloud-sync even though the described skill only needs to read local pin metadata and apply fixes in a project directory. Cloud synchronization can exfiltrate screenshots, DOM snippets, stakeholder threads, and acceptance criteria to a remote service, expanding the trust boundary and creating unnecessary data exposure risk.
The cloud synchronization capability is broader than the stated purpose of processing pinned stakeholder feedback on live web pages. Because the skill handles potentially sensitive page content and project context, an unjustified sync feature increases the chance of unintended third-party disclosure without a clear operational need.
No suspicious patterns detected.