Back to skill

Security audit

Kaggle

Security checks for vulnerabilities and agentic risk

Overview

The Kaggle workflow fits its purpose, but its setup instructions allow unverified remote code execution and under-disclose broader changes to agent skills.

Review the setup before installing. Prefer a verified, pinned CLI installed under your control, and disable automatic synchronization of unrelated agent skills. Understand that OOMOL mediates Kaggle access and may charge for usage. The complete bundled skill was inspected, but remote installers and hosted execution were not verified; no malicious behavior was established.

Vulnerability Patterns
  • 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
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
Vulnerability Patterns
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Output HandlingUnvalidated Output Injection, Cross-Context Output, Unbounded Output
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
Findings (5)

Description-Behavior Mismatch

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

The supplied command executes an Oomol-hosted installation script. No Kaggle access or data-reading functionality is shown, and no connection establishes this installation as a supporting implementation detail for the declared purpose. The remote script's contents and further effects cannot be determined from this chunk.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

High
Category
MCP Tool Poisoning
Confidence
93% confidence
Finding

The supplied chunk only performs a login operation; it contains no Kaggle resource access, search, or reading behavior. Authentication could support a Kaggle implementation, but the provided code establishes no such connection and instead has authentication as its sole observable purpose.

Content

No source excerpt is available for this finding.

External Script Fetching

High
Category
Supply Chain
Confidence
98% confidence
Finding

The curl-to-bash pipeline executes the downloaded response without verifying its contents, version, or provenance beyond HTTPS transport. Compromise of the installer endpoint could turn an otherwise read-oriented Kaggle task into arbitrary local code execution; this is the same underlying installation risk identified by SQP-2, not evidence that the current installer is malicious.

Content

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

The setup workflow executes remotely downloaded installation scripts without warning about the system-integrity risk.

Medium
Category
Output Handling
Confidence
97% confidence
Finding

Both installation examples execute mutable remote scripts immediately, without an integrity check or an explicit approval step for local code execution. A compromised distribution endpoint could therefore execute arbitrary commands with the invoking user's permissions; the missing-CLI condition reduces exposure but does not remove this supply-chain risk.

Content

No source excerpt is available for this finding.

Autonomous Decision Making

Medium
Category
Excessive Agency
Confidence
80% confidence
Finding

Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.

Content

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

md
- **`OOMOL_INSUFFICIENT_CREDIT`** — OOMOL billing stop. Recharge at `https://console.oomol.com/billing/token-recharge` before retrying.

- **HTTP 402 without `OOMOL_INSUFFICIENT_CREDIT`** — the third-party account itself has no active plan or credit. Report the provider error message as is; do not ask the user to recharge OOMOL.

## Resources