Back to skill

Security audit

ML Run Provenance

Security checks across malware telemetry and agentic risk

Overview

This skill is a self-contained ML run metadata guide with a local read-only JSON validator, with only a supply-chain caution around its documented install command.

Before installing, prefer pinning the installer and skill source to a reviewed version or commit when your environment requires strong supply-chain control. When using the skill, keep provenance records redacted and authorize any tracker writes or backfills explicitly.

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
README.md:21
Finding
Unpinned Third-Party Installer and Skill Source## Vulnerability Details **File Location**: `README.md:21` **Vulnerability Type**: Supply-chain risk from unpinned third-party dependencies **Risk Level**: Medium **Complete Code Snippet**: ```sh npx skills add AntreasAntoniou/ml-run-provenance --skill ml-run-provenance ``` ### Technical Analysis The installation command invokes the `skills` npm package through `npx` without specifying a reviewed package version or integrity hash. Depending on local npm behavior and cache state, `npx` can retrieve and execute a mutable package release from the npm registry. The command also identifies the Skill repository by owner and repository name rather than by a verified immutable commit. Consequently, the components executed or installed at installation time may differ from those reviewed during this audit. This is a supply-chain weakness rather than evidence that the currently audited validator is malicious. The bundled `scripts/validate_metadata.py` itself uses only the Python standard library and contains no remote retrieval or command-execution behavior. ### Attack Path 1. An attacker compromises the npm package, its publisher account, or another relevant distribution component. 2. The attacker publishes a malicious release under the package name used by the unversioned `npx` command. 3. A user follows the documented installation command. 4. `npx` retrieves the mutable malicious release and executes its installer logic under the invoking user's account. 5. The malicious installer can access or modify resources available to that user and can install altered Skill content. 6. Alternatively, compromise of the referenced Skill repository could cause the installer to retrieve content different from the audited revision. ### Impact Assessment Successful exploitation could execute attacker-controlled code with the privileges of the user running the installation command. The accessible scope could include that user's files, env ...[truncated 436 chars]
Remediation
## Remediation Suggestions 1. Pin the installer package to a specifically reviewed version rather than invoking an unqualified package name. 2. Use npm lockfile and integrity metadata where the installation workflow supports them. 3. Pin the Skill source to a verified immutable commit hash or signed release rather than a mutable repository reference. 4. Document how users can verify the package checksum, release signature, repository commit, and expected publisher identity before installation. 5. Prefer a download-and-review workflow that separates retrieval from execution for security-sensitive environments. 6. Recommend running installation with the least-privileged account possible and without unnecessary secrets in the process environment. 7. Establish a release process with protected publisher accounts, multi-factor authentication, signed tags, and reproducible release artifacts.
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • 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

VirusTotal

65/65 vendors flagged this skill as clean.

View on VirusTotal

Static analysis

Detected: suspicious.dynamic_code_execution

Dynamic code execution detected.

Critical
Code
suspicious.dynamic_code_execution
Location
tests/test_metadata.py:13