Back to skill

Security audit

S.H.I.T底刊摘要

Security checks for vulnerabilities and agentic risk

Overview

This skill is a small public-website scraper with expected browser automation dependencies and no evidence of hidden persistence, credential access, exfiltration, or destructive behavior.

Before installing, review and pin the npm dependencies, use a lockfile, and be aware that any future LLM-analysis implementation may send scraped abstracts to the model provider unless configured otherwise.

Vulnerability Patterns
  • 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
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
Findings (6)

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
89% confidence
Finding

The skill states that scraped article abstracts will be analyzed by an LLM but does not clearly warn users that scraped content will be transmitted to an external model or service. This is dangerous because users may unknowingly send copyrighted, sensitive, access-restricted, or policy-constrained content to a third party, creating privacy, compliance, or contractual exposure.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding

The documentation instructs users to run npx playwright without pinning a specific package version, which can fetch whatever version is current at execution time. This creates a supply-chain risk because behavior and transitive dependencies can change unexpectedly, and a compromised or malicious upstream release could be executed in the user's environment.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
78% confidence
Finding

The user-facing skill documentation is written entirely in Chinese, with no indication that other languages are supported or that the language choice is region-specific. Under the language/locale policy, forcing a specific language without user opt-in can be a natural-language policy violation.

Content

No source excerpt is available for this finding.

Unpinned Dependencies

Low
Category
Supply Chain
Confidence
92% confidence
Finding

The dependency uses a caret range instead of an exact pinned version, so installs may resolve to different package releases over time. This weakens supply-chain integrity and reproducibility because a later compromised or vulnerable minor/patch release could be pulled in without review.

Content

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

json
{
  "dependencies": {
    "jsdom": "^28.1.0",
    "playwright": "^1.58.2"
  }
}

Unpinned Dependencies

Low
Category
Supply Chain
Confidence
96% confidence
Finding

The Playwright dependency is not pinned to an exact version, allowing future installs to fetch newer matching releases automatically. Because Playwright also downloads browser binaries as part of its ecosystem, version drift increases supply-chain exposure and makes builds less deterministic.

Content

Scanner excerpt · package.json (reported line 4)May include surrounding context.

json
{
  "dependencies": {
    "jsdom": "^28.1.0",
    "playwright": "^1.58.2"
  }
}

Unverifiable Dependency: playwright has 1 known advisory(ies) (CVE-2025-59288 (Playwright downloads and installs browsers without verifying the authenticity of)), but the manifest does not pin a version, so it is unknown whether the installed release is affected

Low
Category
Supply Chain
Confidence
83% confidence
Finding

The manifest references Playwright without an exact pinned version while a known advisory exists for the package family, so it is not possible to determine from this file whether installs will resolve to an affected release. This uncertainty is dangerous because vulnerable versions may be pulled in silently depending on install time and lockfile state.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.