Back to skill

Security audit

Csv Json Converter Free

Security checks for vulnerabilities and agentic risk

Overview

This CSV-to-JSON skill is mostly a local conversion guide, but its routing scope and optional network/database language are broader than its stated purpose.

Install only if you want a Chinese-language CSV/TSV-to-JSON helper and are comfortable granting it read/write/exec for local conversion. Treat callback URLs, network diagnostics, and database writes as out of scope unless you explicitly request them, and install optional Python packages in an isolated environment with pinned versions.

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

Unpinned Third-Party Dependency Installation

Content
View full analysis

Vulnerability Details

File Location: SKILL.md, lines 255-261
Vulnerability Type: Unpinned and unverifiable third-party dependency
Risk Level: Medium

Vulnerable Code Snippet

markdown
### Dependency Details
| Dependency | Type | Required | Installation |
|:------|------:|:------|:------|
| LLM API | API | Required | Provided by the Agent platform (free edition routes to GPT-4o-mini) |
| chardet | Python library | Recommended | `pip install chardet` (encoding detection) |
| csv | Python module | Required | Python standard library; no installation required |
| json | Python module | Required | Python standard library; no installation required |

Technical Analysis

The Skill recommends installing chardet directly from the user's configured Python package index without specifying a reviewed version, cryptographic hashes, or a trusted package source. Consequently, the dependency resolved at installation time can differ from the component that was reviewed during the audit.

The package name is legitimate and there is no evidence that the project intentionally references a malicious dependency. However, the unrestricted installation command creates a supply-chain exposure if the configured index, dependency distribution, package maintainer account, or local package resolution configuration is compromised.

Python packages may execute code during installation or when imported. A malicious dependency release could therefore run code with the privileges of the user or Agent executing the conversion workflow.

Attack Path

  1. An attacker compromises the dependency publisher, the configured package index, or the user's package resolution path.
  2. The attacker makes a malicious chardet distribution available through that source.
  3. A user or Agent follows the documented pip install chardet instruction.
  4. Because no version or hash is specified, pip resolves and installs the attacker-controlled distribution.
  5. Malicious code runs ...[truncated 789 chars]
Remediation
View remediation

Remediation Suggestions

  1. Pin chardet to a reviewed, exact version rather than allowing unrestricted resolution:

    text
    chardet==<reviewed-version>
    
  2. Publish a lock or requirements file containing cryptographic hashes and require hash validation:

    bash
    python -m pip install --require-hashes -r requirements.txt
    
  3. Document an explicit trusted package index and disable fallback sources where operationally appropriate:

    bash
    python -m pip install \
      --index-url https://pypi.org/simple \
      --no-extra-index-url \
      --require-hashes \
      -r requirements.txt
    
  4. Review the selected release and regenerate hashes through a controlled dependency-update process. Automated dependency updates should undergo security scanning and human review before publication.

  5. Run installation and conversion with a non-administrative account in an isolated virtual environment or container. Expose only the input and output directories required for conversion.

  6. Consider avoiding the optional dependency when feasible by attempting deterministic encodings such as UTF-8 and UTF-8 with BOM first, then requiring the user to specify an encoding when those checks fail.

Vulnerability Patterns
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
Findings (7)

Vague Triggers

High
Category
Not specified by scanner
Confidence
94% confidence
Finding

The activation wording is excessively broad, covering generic file handling, document conversion, format conversion, and content extraction tasks. In agent routing systems, this can cause the skill to be invoked far outside CSV-to-JSON use cases, unnecessarily exposing exec/write capabilities on unrelated user data and increasing the attack surface for prompt/skill hijacking.

Content

No source excerpt is available for this finding.

Vague Triggers

High
Category
Not specified by scanner
Confidence
93% confidence
Finding

The coverage-keywords section declares a very wide trigger scope using generic terms such as file processing, document conversion, and workflow automation. This broad matching can cause inappropriate activation on unrelated tasks, making the skill more dangerous because it also advertises exec capability and could influence agent behavior beyond its legitimate domain.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

High
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill simultaneously claims that conversion is fully local and that data is not uploaded, while elsewhere defining callback-oriented network behavior. That contradiction is dangerous because users and downstream agents may rely on the local-only privacy guarantee while still permitting outbound communication paths, increasing the risk of silent data disclosure.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

Defining a callback_url input for a local CSV-to-JSON skill introduces unjustified network semantics into a tool that otherwise claims to operate entirely locally. In agent environments with exec/write capabilities, this can normalize or enable exfiltration-oriented extensions, SSRF-like behavior, or unauthorized outbound requests if an agent later implements the documented callback behavior.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The manifest describes a lightweight CSV-to-JSON conversion tool focused on header inference, type recognition, single-file conversion, and validation. However, the documentation also states that database write integration may be used with user-supplied credentials, which expands behavior beyond local format conversion into external data sink operations.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
83% confidence
Finding

The license section explicitly states the work was 'completely Chinese-localized' for Chinese developers, while the skill content and display name are presented only in Chinese with no opt-in or alternative language path. This creates a language policy concern because the skill appears to enforce a specific language rather than offering user choice.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Low
Category
Not specified by scanner
Confidence
88% confidence
Finding

The error-handling section tells the agent to execute ping and diagnose firewall/proxy connectivity issues. Network diagnostics are not an obvious requirement for a CSV-to-JSON file conversion skill, especially one described as operating locally without uploading data.

Content

No source excerpt is available for this finding.