Back to skill

Security audit

PLS URL to Markdown

Security checks for vulnerabilities and agentic risk

Overview

This skill does what it advertises: it helps fetch web pages and convert them to Markdown, with ordinary dependency and URL-fetching cautions.

Install dependencies in a virtual environment, consider pinning package versions, and only fetch URLs and write output files you intended to use. Avoid using it on internal, private, or untrusted URLs unless you understand the network and file-write implications.

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:12
Finding

Unpinned Third-Party Python Dependencies

Content
View full analysis

Vulnerability Details

File Location: SKILL.md, line 12
Vulnerability Type: Unpinned third-party dependencies
Risk Level: Medium

Vulnerable Code

bash
pip install requests beautifulsoup4 markdownify

Technical Analysis

The skill directs users or agents to install three third-party packages without specifying reviewed versions, cryptographic hashes, a lockfile, or an isolated environment. Package resolution therefore depends on the package index's state at installation time. The effective dependency code can change after this skill has been audited.

This creates supply-chain exposure if a dependency account or release is compromised, an unsafe future version is published, or package resolution is redirected to an untrusted index. Python packages may execute build or installation logic during installation and subsequently run with the privileges of the user invoking the skill.

Attack Path

  1. An attacker compromises a listed dependency's release process or causes package resolution to use a malicious source.
  2. The attacker publishes a malicious version containing installation-time or runtime code.
  3. A user or agent follows the documented command without version or hash constraints.
  4. pip resolves and installs the attacker-controlled release.
  5. Malicious code executes during installation or when the URL conversion workflow imports the package.

Impact Assessment

Successful exploitation could execute arbitrary code with the privileges of the user running pip or the conversion workflow. Depending on those privileges and the environment, this may permit access to local files and credentials, modification of user-owned data, or further network activity. The audited artifact does not itself request elevated privileges, establish persistence, or contain an embedded malicious payload.

Remediation
View remediation

Remediation Suggestions

  • Move dependencies into a reviewed requirements file and pin exact versions.
  • Record cryptographic hashes and install with:
    bash
    python3 -m pip install --require-hashes -r requirements.txt
    
  • Use a dedicated virtual environment rather than modifying the system Python environment.
  • Review direct and transitive dependencies and update them through a controlled process.
  • Use only trusted package indexes and explicitly configure approved index sources.
  • Generate and retain a lockfile or equivalent reproducible dependency manifest.
  • Run the converter with least privilege and without unnecessary access to credentials or sensitive files.
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 (1)

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The skill explicitly instructs the agent to fetch arbitrary URLs and optionally write the converted content to a local output file, but it provides no warning, constraint, or consent boundary around outbound network access or filesystem writes. In an agent setting, this can enable unintended SSRF-style access to internal resources, retrieval of sensitive content, or unauthorized local file creation/overwrite if the tool is invoked on attacker-controlled input.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.