Back to skill

Security audit

Pinterest Scraper

Security checks for vulnerabilities and agentic risk

Overview

This skill is a straightforward Pinterest search scraper, with the main caution being ordinary supply-chain risk from unpinned install commands.

Install in an isolated virtual environment or container, avoid running installs with administrator privileges, and pin reviewed dependency versions if you need repeatable or higher-assurance use. Use the scraper only for public Pinterest search results and be mindful of site rules and rate limits.

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
SKILL.md:14
Finding

Unpinned Third-Party Dependencies and Browser Binary

Content
View full analysis

Vulnerability Details

File Location: SKILL.md, lines 14-15
Vulnerability Type: Unpinned third-party dependencies and externally downloaded browser component
Risk Level: Medium

Complete Code Snippet:

bash
pip install crawlee[playwright]
playwright install chromium

Technical Analysis

The installation instructions retrieve crawlee, its Playwright dependencies, and a Chromium browser binary without specifying reviewed versions or integrity hashes. The project also provides no dependency lock file or equivalent integrity controls.

Consequently, the components installed when these commands are executed may differ from those present when the Skill was reviewed. If an upstream package, transitive dependency, package repository, release account, or browser distribution channel is compromised, the installation process could introduce attacker-controlled code. Unpinned versions also increase the likelihood of silently receiving incompatible or newly vulnerable releases.

This finding does not establish that the named packages are currently malicious. The risk arises from unconstrained dependency resolution and the absence of artifact integrity verification.

Attack Path

  1. An attacker compromises an upstream dependency, transitive dependency, maintainer account, package repository, or browser artifact distribution channel.
  2. The attacker publishes or substitutes a malicious release that satisfies the unconstrained installation commands.
  3. A user follows the documented instructions and runs pip install crawlee[playwright] or playwright install chromium.
  4. The package installer executes package installation behavior or installs an attacker-controlled runtime component.
  5. Malicious code subsequently runs with the privileges of the user performing installation or launching the scraper.

Impact Assessment

Successful exploitation could permit arbitrary code execution under the instal ...[truncated 522 chars]

Remediation
View remediation

Remediation Suggestions

  1. Pin all direct dependencies to reviewed versions, including the Crawlee and Playwright releases.
  2. Generate and commit a lock file that records resolved transitive dependency versions.
  3. Require package hashes during installation, such as through a hash-locked requirements file and pip install --require-hashes.
  4. Install packages only from explicitly configured, trusted repositories over authenticated TLS connections.
  5. Pin the Playwright version so its expected Chromium revision is deterministic, and verify downloaded browser artifacts using vendor-provided integrity mechanisms where available.
  6. Perform dependency vulnerability and provenance scanning before updating pinned versions.
  7. Run installation and browser automation as a non-administrative user in an isolated virtual environment or container with restricted filesystem and network access.
  8. Document a controlled dependency-update process requiring review and testing before lock files or browser revisions are changed.
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep