Back to skill

Security audit

jyml

Security checks for vulnerabilities and agentic risk

Overview

This is a straightforward YAML/JSON conversion helper, but users should treat its unpinned npm install and npx commands as normal third-party code execution risk.

Before installing, verify that the `jyml` npm package and version are the one you intend to trust. Prefer a pinned version or isolated `npm exec --package=jyml@<version>` workflow over a global install, especially when converting sensitive configuration files.

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
``` ### Technical Analysis The skill directs users or agents to retrieve and execute the latest available version of the `jyml` npm package without specifying an exact version, lockfile, or integrity hash. The project contains only documentation and does not include the package implementation, so the behavior of the downloaded executable cannot be verified from the audited artifact. `npm install -g jyml` installs package code globally and may execute npm lifecycle scripts during installation. `npx jyml < ...[truncated 1858 chars]:19
Finding

Unpinned Third-Party npm Package Installation and Execution

Content
View full analysis
``` ### Technical Analysis The skill directs users or agents to retrieve and execute the latest available version of the `jyml` npm package without specifying an exact version, lockfile, or integrity hash. The project contains only documentation and does not include the package implementation, so the behavior of the downloaded executable cannot be verified from the audited artifact. `npm install -g jyml` installs package code globally and may execute npm lifecycle scripts during installation. `npx jyml ` can download and immediately execute the package when it is not already available locally. In either case, package ownership compromise, a malicious release, or an unexpected upstream update could cause attacker-controlled code to run with the permissions of the invoking user. ### Attack Path 1. An attacker compromises the referenced npm package, its publisher account, or its release process. 2. The attacker publishes a malicious version under the same package name. 3. A user or agent follows the skill instructions and runs `npm install -g jyml` or `npx jyml `. 4. npm resolves and downloads the unpinned malicious release. 5. Malicious lifecycle or CLI code executes with the invoking user's privileges. 6. The code can access data and system resources available to that user, including files supplied for conversion and other readable local files. This exploitation path depends on compromise or malicious control of the external package; the audited `SKILL.md` itself does not contain an embedded malicious payload. ### Impact Assessment Successful exploitation could permit arbitrary code execution with the invoking user's privileges. The ...[truncated 590 chars]
Remediation
View remediation
-- jyml ``` 2. Verify the selected package version, publisher, provenance, and integrity before recommending execution. 3. Provide a lockfile and integrity metadata where the package is incorporated into a maintained project. 4. Avoid global installation unless it is operationally necessary; prefer a project-local, isolated dependency. 5. Disable npm lifecycle scripts during installation where compatible with the verified package: ```bash npm install --ignore-scripts --save-exact jyml@ ``` 6. Include or reference reviewable source code and document the expected package checksum or trusted release provenance. 7. Run conversion tools with least privilege in a sandbox or container, exposing only the input and intended output paths. 8. Review updates before changing the pinned version rather than automatically adopting newly published releases. ]]>
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (4)

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The trigger description is broad enough to match many generic config-format requests, which can cause the agent to invoke this skill in situations beyond its narrow intended use. Overbroad activation increases the chance of unnecessary tool use, unexpected file handling, or execution of risky setup instructions such as package installation.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
70% confidence
Finding

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.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
88% confidence
Finding

Using npx jyml <file> without pinning an exact package version allows execution of whatever package version is currently published or resolved at runtime. That creates a supply-chain risk: a malicious or compromised upstream release could be executed on the user's machine when they follow the skill instructions.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

Scanner excerpt · SKILL.md (reported line 198)May include surrounding context.

Convert JSON responses to readable YAML:

bash
curl -s https://api.example.com/data > response.json
jyml response.json --indent 4
cat response.yaml

Static analysis

No suspicious patterns detected.