T08 · Insecure Dependencies
- Location
SKILL.md:15- Finding
Unpinned mutable dependencies allow supply-chain code execution
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill is a coherent Playwright browser automation guide, but it grants broad npm/browser powers that can expose logged-in sessions or run mutable packages without enough safeguards.
Install only if you need advanced Playwright automation. Use isolated test accounts and browser profiles, pin npm package versions, avoid attaching to your personal logged-in browser, do not run untrusted run-code scripts, and never save or print cookies, tokens, or auth state unless you can protect and delete them.
SKILL.md:15Unpinned mutable dependencies allow supply-chain code execution
references/examples.md:407Browser authentication state is stored and exposed without secret-handling safeguards
run-code enables execution of custom code in the browser context and kill-all can forcibly terminate processes, but the reference gives no warning about code trust, irreversible side effects, or operational disruption. In an agent skill, undocumented access to these powerful actions materially raises the risk of harmful automation, session abuse, or destruction of active work.
The state persistence examples show saving authentication state, listing cookies, retrieving a session cookie, and piping tokens to shell variables without any credential-handling warning. These examples normalize extraction and storage of reusable auth material, which could enable session hijacking or accidental leakage through files, logs, terminals, or downstream tools.
The skill description and trigger conditions are broad enough that the skill may activate for loosely related mentions of browsers, testing, or automation. In an agent environment with Bash execution privileges, unintended activation can expand the chance of risky command execution on the wrong task.
The keyword-based activation guidance instructs the framework to load the skill on simple term matches like 'test' or 'playwright' without contextual boundaries. This can cause accidental invocation for unrelated tasks and expose powerful Bash/browser capabilities where they were not needed.
The skill recommends invoking Playwright via npx without a pinned version, which can cause execution of whatever version is resolved at runtime. In an agent skill context, this weakens supply-chain control and can lead to unexpected behavior or execution of a compromised or incompatible package.
The storage section includes listing, reading, setting, deleting, and clearing cookies, localStorage, and sessionStorage. While some state handling can support testing, the breadth of direct storage manipulation and inspection is more akin to browser data administration and credential/session handling than the manifest's stated browser automation trigger description.
The document describes session-state mutation and destructive commands such as cookie deletion and storage clearing without warning users that they can destroy login state, invalidate sessions, or overwrite browser data. In a reusable automation skill, lack of such warnings increases the chance of accidental data loss or misuse against real-user profiles.
The request inspection, tracing, console capture, and video recording features can collect sensitive URLs, headers, form contents, tokens, and visual data, yet the reference provides no privacy or data-handling warning. Users may unknowingly capture secrets or personal data during browser sessions and store them in logs or artifacts.
The manifest describes a Playwright-based browser automation skill for web testing, page interaction, and automation workflows. The run-code command explicitly advertises running custom code, which is materially broader than ordinary scripted interactions and exposes a general execution capability not conveyed by the manifest description.
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
playwright-cli route "**/*.png" --status=404
# 模拟 API 响应
playwright-cli route "https://api.example.com/users" --body='{"users": [{"id": 1, "name": "Test User"}]}'
# 查看已设置的路由
playwright-cli route-list
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
playwright-cli route "**/*.png" --status=404
# 模拟 API 响应
playwright-cli route "https://api.example.com/users" --body='{"users": [{"id": 1, "name": "Test User"}]}'
# 查看已设置的路由
playwright-cli route-list
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
playwright-cli route "**/*.png" --status=404
# 模拟 API 响应
playwright-cli route "https://api.example.com/users" --body='{"users": [{"id": 1, "name": "Test User"}]}'
# 查看已设置的路由
playwright-cli route-list
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
playwright-cli route "**/*.png" --status=404
# 模拟 API 响应
playwright-cli route "https://api.example.com/users" --body='{"users": [{"id": 1, "name": "Test User"}]}'
# 查看已设置的路由
playwright-cli route-list
The video recording and tracing examples encourage capture of browser interactions without warning that recordings and traces can contain passwords, tokens, personal data, page contents, and authenticated workflows. In a browser automation skill, these artifacts are easy to retain, share, or mishandle, creating privacy and credential exposure risk.
The example instructs users to run npx playwright show-trace trace.zip, which pulls and executes an unpinned package version at runtime. That creates a supply-chain and reproducibility risk because a future compromised or incompatible release could be fetched implicitly when viewing trace artifacts.
The '自定义代码执行' section explicitly documents run-code for arbitrary Playwright/JavaScript execution, including loading code from a file. In an agent skill, this materially expands capability from constrained browser automation into general script execution against live browser contexts, enabling credential extraction, silent data collection, or unsafe side effects on behalf of the user.
The custom code execution section permits arbitrary browser-context scripting without any warning about abuse potential. Because such code can inspect page content, cookies via browser APIs/context, DOM state, and perform arbitrary actions, presenting it as a routine example materially increases the chance of unsafe or unauthorized use.
The examples show attaching to an already running browser via CDP, including arbitrary endpoints. This can grant the skill access to pre-authenticated sessions, cookies, open tabs, and sensitive data outside the intended isolated automation session, significantly broadening the trust boundary.
This markdown file presents all operational instructions in a single language and does not indicate that the user can opt into another language or that the skill is intentionally region-specific. That can violate language/locale policy when users are not given a choice.
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.
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.
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.
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.
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.
Natural-language policy violations include forcing a specific language without user opt-in. This reference file presents all instructional content in Chinese and does not indicate that the skill is region-specific or that alternative language support is available.
No suspicious patterns detected.