Back to skill

Security audit

Kaggle

Security checks for vulnerabilities and agentic risk

Overview

This Kaggle skill is a disclosed Maton-based integration with clear credential, approval, and automation safeguards, though users should install its dependencies carefully.

Before installing, verify that the Maton packages and Homebrew tap are the ones you intend to trust, avoid sudo or elevated installs, prefer OAuth over long-lived API keys, and review any hosted function, trigger, or destination carefully because those can keep running or forwarding data until removed.

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:43
Finding
Dependency Installation Without Cryptographic Integrity Verification## Vulnerability Details **File Location**: `SKILL.md`, lines 43, 49–50, 1265, and 1282 **Vulnerability Type**: T08: Insecure Dependencies **Risk Level**: Medium ### Vulnerable Code ```bash npm install -g @maton/cli@0.3.1 ``` ```bash brew install maton-ai/cli/maton brew pin maton ``` ```bash pip install 'maton-ai==0.3.1' ``` ```bash npm install @maton/sdk@0.3.1 ``` ### Technical Analysis The Skill directs users or agents to install third-party CLI and SDK packages from npm, PyPI, and a vendor-controlled Homebrew tap. The npm and Python packages are version-pinned, which reduces accidental upgrades, but they are not verified using cryptographic hashes, signed release artifacts, or a reviewed lockfile. Version pinning alone does not guarantee artifact integrity. A compromised package-publisher account, package registry, vendor tap, or release artifact could cause the same documented version to deliver malicious installation content. Package installation may execute package-controlled lifecycle hooks, build scripts, or other local code with the privileges of the user running the installation. The Homebrew sequence presents an additional integrity limitation: `brew install maton-ai/cli/maton` installs the formula currently exposed by the tap, and `brew pin maton` only prevents subsequent upgrades. Pinning after installation does not select or verify the release that was originally audited. ### Attack Path 1. An attacker compromises a package-publisher account, registry release, distribution infrastructure, or the `maton-ai/cli` Homebrew tap. 2. The attacker replaces or republishes an expected artifact, or modifies the current Homebrew formula to reference a malicious artifact. 3. A user or agent follows the installation instructions in `SKILL.md`. 4. npm, pip, or Homebrew downloads the unverified component. 5. Package-controlled installation or runtime code executes under the invoking user's account. ...[truncated 1339 chars]
Remediation
## Remediation Suggestions 1. **Add cryptographic integrity verification** - Publish SHA-256 checksums for reviewed CLI and SDK artifacts. - Verify checksums before installation or execution. - Prefer signed release artifacts and document signature verification against a pinned publisher key. 2. **Harden Python dependency installation** - Provide a reviewed requirements file containing exact versions and hashes. - Require installation with `pip install --require-hashes -r requirements.txt`. - Include hashes for all transitive dependencies, not only the direct SDK package. 3. **Harden npm dependency installation** - Provide and review a lockfile that pins the complete transitive dependency graph. - Use `npm ci` rather than a mutable `npm install` workflow where practical. - Use `--ignore-scripts` during installation when package functionality does not require lifecycle scripts. - If lifecycle scripts are required, document and review them explicitly. 4. **Correct the Homebrew installation model** - Use a versioned formula or a signed, version-specific binary rather than installing the current tap state. - Pin the formula source and artifact checksum to the exact reviewed release. - Clarify that `brew pin` only prevents future upgrades and does not verify the initially installed artifact. 5. **Reduce installation privileges** - Do not run package installation as root or with `sudo`. - Prefer an isolated virtual environment, container, or dedicated low-privilege user. - Avoid global npm installation where a project-local or isolated installation is sufficient. 6. **Document dependency provenance** - Identify the expected package publishers, repository URLs, signatures, checksums, and release identifiers. - Require users to stop installation if package provenance or integrity verification fails.
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

Static analysis

No suspicious patterns detected.