Back to skill

Security audit

Baz

Security checks for vulnerabilities and agentic risk

Overview

The skill is a disclosed Bazaar video-generation integration, but it tells agents to create accounts, handle API keys, and start payment top-up flows without a clear user-consent gate.

Install only if you intentionally want Bazaar involved. Do not let an agent create a Bazaar account, store an API key, or start top-up/payment steps unless you explicitly approve that action. Use a user-provided, revocable API key, avoid sensitive prompts or private project data unless Bazaar storage is acceptable, and prefer a pinned or otherwise verified CLI install over the unpinned global npm command shown here.

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:10
Finding
Unpinned Third-Party npm Package Is Installed Globally and Trusted with an API Key## Vulnerability Details **File Location**: `SKILL.md`, lines 10-15 and 45-46 **Vulnerability Type**: Unpinned and unaudited third-party dependency **Risk Level**: Medium ### Vulnerable Code ```yaml install: - id: node kind: node package: bazaar.it bins: - baz ``` ```bash npm install -g bazaar.it baz auth login <your-api-key> ``` ### Technical Analysis The skill instructs the agent to globally install the `bazaar.it` npm package without specifying a version, lockfile, package integrity hash, or other reproducibility control. Consequently, the code installed during each invocation depends on whichever package version the npm registry resolves at that time. npm packages can execute lifecycle scripts during installation. A global installation can also place the package's executable in the user's global npm binary directory. The instructions subsequently execute that binary and provide it with a Bazaar API key through `baz auth login`. The repository contains only `SKILL.md`; it does not include the package source or other evidence that would allow the installed implementation and its lifecycle scripts to be audited as part of this project. No evidence establishes that the current `bazaar.it` package is malicious. The security issue is the absence of dependency pinning and integrity controls around a package that is globally installed, executed, and entrusted with a credential. ### Attack Path 1. An attacker compromises the npm package, its publisher account, or the relevant package distribution channel. 2. The attacker publishes a malicious release under the package name `bazaar.it`. 3. An agent follows the skill instructions and runs `npm install -g bazaar.it` without a pinned version. 4. npm retrieves the attacker-controlled release and may execute its installation lifecycle scripts with the installing user's privileges. 5. The installed `baz` executable is placed in the global ...[truncated 1234 chars]
Remediation
## Remediation Suggestions 1. Pin the dependency to a specifically reviewed version rather than installing the latest available release: ```bash npm install --global --ignore-scripts bazaar.it@<reviewed-version> ``` 2. Verify the selected release's npm integrity metadata and publisher identity before installation. Record the reviewed version and expected integrity value in the skill documentation. 3. Prefer a project-local installation governed by a committed lockfile instead of a global installation: ```bash npm install --save-exact bazaar.it@<reviewed-version> npx --no-install baz ... ``` 4. Audit the package source, transitive dependencies, and npm lifecycle scripts for the pinned release. Use `--ignore-scripts` when lifecycle scripts are unnecessary. 5. Run the CLI in a sandbox or container with only the filesystem and network access required for video generation. Do not expose unrelated home-directory files, SSH credentials, cloud credentials, or broad environment variables. 6. Supply a narrowly scoped API key where the service supports scoped credentials. Avoid placing the key directly in shell history or command-line arguments, and rotate it immediately if package compromise is suspected. 7. Document a trusted installation source, release-verification procedure, update-review process, and credential-revocation procedure.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • 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 (5)

Vague Triggers

Medium
Confidence
88% confidence
Finding
The invocation guidance is broad enough that the skill could activate for generic video-related requests, increasing the chance that an agent uses this skill when the user did not intend to involve Bazaar. In context, that matters because the skill can transmit prompts and project data to an external service and steer the agent into account setup flows.

Context-Inappropriate Capability

Medium
Confidence
96% confidence
Finding
The skill directs the agent to create a third-party account, obtain credentials, and initiate top-up/payment flows as part of normal operation. That exceeds the core purpose of video generation and can cause unauthorized account creation or financial transactions on behalf of the user without explicit consent.

Missing User Warnings

Medium
Confidence
97% confidence
Finding
The workflow explicitly tells the agent to register an account and set up API authentication 'no human needed' without first obtaining user approval. This creates a direct risk of unauthorized external account creation, credential handling, and downstream billing activity.

External Transmission

Medium
Category
Data Exfiltration
Content
```bash
# 1. Discover what Bazaar can do
curl https://bazaar.it/api/v1/capabilities

# 2. Register (one POST, no human needed)
curl -X POST https://bazaar.it/api/v1/register \
Confidence
92% confidence
Finding
The skill instructs the agent to send requests to external Bazaar endpoints, including registration and later project/prompt submission, which transmits user and agent-supplied data off-platform. External transmission is expected for this type of integration, but it is still security-relevant here because the skill pairs it with broad activation and autonomous account setup guidance.

Vague Triggers

Medium
Confidence
92% confidence
Finding
The trigger condition 'User wants to automate video generation' is highly generic and can match many requests that do not imply consent to use this vendor. Because the skill performs external operations and may lead into credential/account workflows, overbroad triggering raises privacy and unintended-action risk.