Back to skill

Security audit

Pinterest Search

Security checks for vulnerabilities and agentic risk

Overview

This Pinterest search skill mostly matches its stated purpose, but it needs review because its setup and helper code handle cookies, proxies, downloads, and static-analysis-evasion patterns unsafely.

Install only after review or changes. Avoid using a real Pinterest session cookie with this version, do not copy generated export commands containing untrusted values, install Bun through a safer pinned/verifiable method, and use --download only in a sandboxed environment with limited network and disk access.

Vulnerability Patterns
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • 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
Findings (4)

T03 · Remote Payload Retrieval and Execution

Error
Location
SKILL.md:55
Finding

Remote Installer Is Downloaded and Executed Without Integrity Verification

Content
View full analysis
Remediation
View remediation
" echo " bun-installer.sh" | sha256sum --check less bun-installer.sh bash bun-installer.sh ``` ]]>

T09 · Insecure Skill Coding Practices

Error
Location
scripts/configure.ts:12
Finding

Cookie Handling Exposes Session Secrets and Generates a Shell-Injection Sink

Content
View full analysis
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Error
Location
scripts/vendors/image-cache/src/index.ts:91
Finding

Unrestricted Image Downloads Permit Blind SSRF and Resource Exhaustion

Content
View full analysis
Remediation
View remediation

T08 · Insecure Dependencies

Warning
Location
scripts/package.json:5
Finding

Mutable Dependency Ranges and Missing Lockfile Make Installation Non-Reproducible

Content
View full analysis
Remediation
View remediation
Vulnerability Patterns
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Tool MisuseTool Parameter Abuse, Chaining Abuse, Unsafe Defaults
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
Findings (41)

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

The documentation indicates the skill can download arbitrary remote images, cache them locally, possibly transform them, and use proxy-based fetching with multi-domain support, which is meaningfully broader than a Pinterest keyword search. That broadens the attack surface to include SSRF-like proxy misuse, untrusted content retrieval, and storage of arbitrary remote data under the guise of a search skill.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
94% confidence
Finding

The documentation indicates the skill can download arbitrary remote images, cache them locally, possibly transform them, and use proxy-based fetching with multi-domain support, which is meaningfully broader than a Pinterest keyword search. That broadens the attack surface to include SSRF-like proxy misuse, untrusted content retrieval, and storage of arbitrary remote data under the guise of a search skill.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

The documentation indicates the skill can download arbitrary remote images, cache them locally, possibly transform them, and use proxy-based fetching with multi-domain support, which is meaningfully broader than a Pinterest keyword search. That broadens the attack surface to include SSRF-like proxy misuse, untrusted content retrieval, and storage of arbitrary remote data under the guise of a search skill.

Content

No source excerpt is available for this finding.

External Script Fetching

High
Category
Supply Chain
Confidence
98% confidence
Finding

The documentation instructs users to fetch and execute a remote installation script directly from the network using curl piped to bash. This is a classic supply-chain and remote-code-execution risk because any compromise of the upstream server, transport, or script contents immediately results in arbitrary code execution on the host.

Content

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

Install Bun runtime:

bash
curl -fsSL https://bun.sh/install | bash

Install dependencies:

Chaining Abuse

High
Category
Tool Misuse
Confidence
99% confidence
Finding

The explicit use of a shell pipe into bash chains remote content retrieval directly into execution, removing any opportunity for inspection and amplifying the risk of arbitrary command execution. In a skill context, embedding this pattern normalizes unsafe operator behavior and could be reused by agents or users without understanding the consequences.

Content

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

Install Bun runtime:

bash
curl -fsSL https://bun.sh/install | bash

Install dependencies:

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
Use the script at `scripts/pinterest_search.ts`. All TypeScript files must be run with **Bun**:

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
Use the script at `scripts/pinterest_search.ts`. All TypeScript files must be run with **Bun**:

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
Use the script at `scripts/pinterest_search.ts`. All TypeScript files must be run with **Bun**:

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
Use the script at `scripts/pinterest_search.ts`. All TypeScript files must be run with **Bun**:

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
Use the script at `scripts/pinterest_search.ts`. All TypeScript files must be run with **Bun**:

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
Use the script at `scripts/pinterest_search.ts`. All TypeScript files must be run with **Bun**:

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
Use the script at `scripts/pinterest_search.ts`. All TypeScript files must be run with **Bun**:

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
Use the script at `scripts/pinterest_search.ts`. All TypeScript files must be run with **Bun**:

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
Use the script at `scripts/pinterest_search.ts`. All TypeScript files must be run with **Bun**:

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
Use the script at `scripts/pinterest_search.ts`. All TypeScript files must be run with **Bun**:

Intent-Code Divergence

High
Category
Not specified by scanner
Confidence
98% confidence
Finding

The comments explicitly state that environment-variable handling is structured to disrupt static taint analysis, which is a strong indicator of deliberate evasion rather than an implementation necessity. Code that is intentionally written to hide data flow from security tooling is dangerous because it undermines review and can conceal misuse of sensitive inputs such as proxies, cookies, or file paths.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

High
Category
Not specified by scanner
Confidence
99% confidence
Finding

An explicit statement that the code is meant to evade static analysis is itself a serious security finding because it demonstrates intent to bypass safeguards. In the context of a skill that handles environment-derived proxy and cookie data, this makes the module substantially more dangerous than an ordinary scraper because reviewers cannot trust that data flows are honestly represented.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

High
Category
Not specified by scanner
Confidence
98% confidence
Finding

The comment says a serialization/deserialization step is used to break taint tracking, directly signaling an intent to obscure how untrusted data moves through the program. Even if the specific transform is functionally harmless, the evasion intent substantially raises the likelihood that unsafe file or network flows are being concealed from automated and human reviewers.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

High
Category
Not specified by scanner
Confidence
99% confidence
Finding

The code comment describing content transformation as a way to break taint tracking indicates purposeful concealment of input flow from security tools. That intent is especially concerning in a skill that reads and writes local files, because it suggests the developer is optimizing for bypassing detection rather than for safe, transparent behavior.

Content

No source excerpt is available for this finding.

Credential Access

High
Category
Privilege Escalation
Confidence
60% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

Scanner excerpt · .gitignore (reported line 2)May include surrounding context.

text
# Environment variables
.env
.env.local
.env.*.local

Credential Access

High
Category
Privilege Escalation
Confidence
60% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

Scanner excerpt · scripts/vendors/image-cache/.gitignore (reported line 2)May include surrounding context.

text
# Environment variables
.env
.env.local
.env.*.local

Credential Access

High
Category
Privilege Escalation
Confidence
60% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

Scanner excerpt · .gitignore (reported line 3)May include surrounding context.

text
# Environment variables
.env
.env.local
.env.*.local

# Node.js

Credential Access

High
Category
Privilege Escalation
Confidence
60% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

Scanner excerpt · scripts/vendors/image-cache/.gitignore (reported line 3)May include surrounding context.

text
# Environment variables
.env
.env.local
.env.*.local

# Node.js

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
91% confidence
Finding

The skill declares access to environment variables, network, and shell-like execution patterns but does not constrain or disclose tool scope via explicit permissions. That increases the chance an agent invokes a capability-rich skill without adequate sandboxing or user awareness, especially since the skill also handles cookies, proxies, filesystem writes, and downloads.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The trigger text is broad enough to activate on generic requests for visual inspiration even when the user did not specifically ask for Pinterest. Over-broad routing is dangerous in agent systems because it can cause accidental invocation of a capability-bearing skill that performs network access, caching, and file writes in contexts where the user only asked for general help.

Content

No source excerpt is available for this finding.