kaggle
Pass
Audited by Gen Agent Trust Hub on Oct 5, 2026
Risk Level: SAFEINDIRECT_PROMPT_INJECTIONCOMMAND_EXECUTIONCREDENTIALS_UNSAFE
Full Analysis
- [INDIRECT_PROMPT_INJECTION]: The skill processes untrusted data from Kaggle (forum posts, competition rules, team names) but implements high-quality mitigations.
- Ingestion points: Data is fetched via
mcp_client.pyandshared/kaggle_cli.py. - Boundary markers: Present and advanced.
shared/untrusted.pywraps all external data in<untrusted-content-[nonce]>tags using a per-block random nonce to prevent data from 'breaking out' of its container. - Capability inventory: The skill uses
subprocess.runto call the Kaggle CLI andurllib.requestfor network access. - Sanitization: The
neutralizefunction inshared/untrusted.pyproactively strips or notes invisible Unicode characters, control codes, and homoglyphs that could be used for steganographic instruction smuggling. - [COMMAND_EXECUTION]: The skill wraps the
kaggleCLI usingsubprocess.runwith list-based arguments (no shell). - It implements a strict 'dry run' policy: operations that change account state (submissions, publishing) only execute if an explicit
--yesflag is provided, ensuring user oversight. - The
shared/kaggle_cli.pyscript includes a kind-checking mechanism to categorize commands and enforce this gate on unknown or state-changing command paths. - [CREDENTIALS_UNSAFE]: The skill handles sensitive Kaggle tokens but follows best practices.
- It specifically scrubs
VERBOSEandVERBOSE_OUTPUTenvironment variables before execution to prevent tokens from being leaked in debug logs or standard output. save_credentials.pyprovides a secure way to persist tokens to disk, usingos.O_EXCLand0o600permissions (owner-only access).
Audit Metadata