Back to skill

Security audit

Jarvis MCP HTML Extractor

Security checks for vulnerabilities and agentic risk

Overview

This is a small HTML-scraping MCP skill whose behavior is disclosed, but users should review the external npm install and outbound URL fetching before use.

Before installing, confirm you trust the npm package and publisher, consider pinning a reviewed version, and run it in an environment where outbound web requests to user-supplied URLs cannot reach sensitive internal systems.

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:18
Finding
Unpinned Third-Party Package Installed Globally## Vulnerability Details **File Location**: `SKILL.md`, lines 18-22 **Vulnerability Type**: Unpinned global npm dependency installation **Risk Level**: Medium ```bash ## Установка ```bash npm install -g html-extractor-mcp ``` ``` ### Technical Analysis The documented installation command obtains the current release of `html-extractor-mcp` from the npm registry without specifying an exact version or verifying an integrity hash. Because the selected package release can change after this Skill has been reviewed, users may receive code that differs from the version originally intended. npm packages can also define lifecycle scripts that execute during installation. The global installation option (`-g`) exposes the resulting executable system-wide for the relevant npm prefix and runs installation actions with the privileges of the invoking user. The dependency's implementation is not included in this project, so its source, lifecycle behavior, and runtime behavior could not be verified by this audit. ### Attack Path 1. An attacker compromises the package publisher account, the npm package, or another relevant supply-chain component. 2. The attacker publishes a malicious release under the expected package name. 3. A user follows the unpinned `npm install -g html-extractor-mcp` instruction. 4. npm resolves and downloads the attacker-controlled current release. 5. Malicious lifecycle scripts, if present, execute during installation with the invoking user's privileges. 6. The installed executable may subsequently execute attacker-controlled behavior when invoked through `mcporter`. ### Impact Assessment Successful exploitation could execute arbitrary code with the privileges of the user performing the installation. Depending on those privileges, the malicious package could access user-readable files and credentials, make network requests, alter files writable by that user, or replace the globally exposed `html-extractor- ...[truncated 230 chars]
Remediation
## Remediation Suggestions - Pin the dependency to an exact, reviewed version, such as `html-extractor-mcp@x.y.z`, rather than installing the mutable latest release. - Record and verify the expected package provenance, source repository, publisher, and integrity information. - Prefer a project-local installation with a committed lockfile over a global installation where operationally practical. - Install and run the package under a dedicated, least-privileged account or isolated container. - Disable npm lifecycle scripts during installation with `--ignore-scripts` unless reviewed functionality specifically requires them. - Audit the pinned package and its transitive dependencies before deployment. - Use automated dependency monitoring and require manual review before upgrading the pinned version.
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)

Ae4

Medium
Category
analysis-evasion
Confidence
80% confidence
Finding
Suspicious Unicode normalization or mixed-script content

Missing User Warnings

Medium
Confidence
93% confidence
Finding
The skill explicitly performs live requests to arbitrary external URLs for fetching, text extraction, and JSON API access, but the documentation does not warn users about outbound network access or scraping behavior. This can mislead operators into invoking the skill in sensitive environments, increasing the risk of SSRF-like misuse, unintended data egress, contact with untrusted hosts, or policy violations.

Natural-Language Policy Violations

Low
Confidence
96% confidence
Finding
The natural-language content of the skill file, including the description and usage notes, is entirely in Russian. The policy requires avoiding forced language or locale constraints unless the skill offers a choice or clearly documents a justified regional limitation, which is not present here.

Static analysis

No suspicious patterns detected.