Back to skill

Security audit

Webpage Screenshot

Security checks for vulnerabilities and agentic risk

Overview

This skill gives straightforward instructions for taking webpage screenshots, with some ordinary setup and data-handling cautions users should keep in mind.

Before installing, prefer running Playwright from a pinned project dependency or trusted lockfile, and review pages for secrets, private account data, or internal content before saving full-page screenshots.

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:31
Finding
Unpinned package execution through npx## Vulnerability Details **File Location**: `SKILL.md`, line 31 **Vulnerability Type**: Unpinned third-party dependency execution **Risk Level**: Medium ```bash npx playwright install chromium ``` ### Technical Analysis The installation instructions invoke the `playwright` executable through `npx` without specifying a trusted version or requiring a verified local installation. If `playwright` is not already present in the local dependency tree, `npx` may offer to retrieve and execute a package from the configured npm registry. The audited project contains only `SKILL.md`; no `package.json`, lockfile, integrity metadata, or vendored executable is present to establish which Playwright version should be trusted. Consequently, the command's effective behavior can depend on mutable registry state and local npm configuration. This creates a supply-chain execution risk rather than evidence that Playwright itself is malicious. Exploitation requires an attacker to influence package resolution, such as through a compromised registry account, malicious registry mirror, altered npm configuration, DNS or network compromise where transport protections are bypassed, or future compromise of a remotely resolved package version. ### Attack Path 1. A user follows the documented setup instructions on a system where `playwright` is not installed locally. 2. `npx` resolves the unversioned `playwright` executable using the system's configured npm registry. 3. An attacker has compromised the resolved package or controls an untrusted registry or mirror selected by the npm configuration. 4. The user accepts installation if prompted. 5. npm downloads the attacker-controlled package and may run package lifecycle behavior or its executable under the user's account. 6. The malicious process inherits the invoking user's environment and filesystem access. ### Impact Assessment Successful exploitation permits arbitrary code execution with the privi ...[truncated 468 chars]
Remediation
## Remediation Suggestions - Add a project manifest and lockfile that pin an explicitly reviewed Playwright version. - Install dependencies using a lockfile-enforcing command such as `npm ci` rather than dynamically resolving packages through an unversioned `npx` invocation. - Invoke the verified local executable with `npx --no-install playwright install chromium` or an equivalent package-manager command that refuses registry fallback. - Configure an approved npm registry and retain integrity hashes in the committed lockfile. - Run dependency installation in a restricted environment without sensitive credentials and with only the filesystem permissions required for setup. - Use automated dependency scanning and review version updates before changing the pinned dependency.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • 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
Findings (3)

Rp1

Medium
Category
MCP Rug Pull
Confidence
70% confidence
Finding
npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.

Missing User Warnings

Medium
Confidence
90% confidence
Finding
The skill instructs users to capture and save full-page screenshots but does not warn that the resulting images may include sensitive content such as personal data, session state, internal dashboards, or secrets rendered in the page. Because screenshots are persisted to disk and may cover the full scrollable page, this omission increases the risk of unintended data retention and disclosure.

Natural-Language Policy Violations

Low
Confidence
96% confidence
Finding
The skill content is written entirely in Chinese and does not offer any language choice or explain that the skill is intended only for Chinese-speaking users or a Chinese-specific environment. Per the policy, forcing a specific language without user opt-in is a natural-language policy concern.

Static analysis

No suspicious patterns detected.