Back to skill

Security audit

Grocery Shopping Kroger

Security checks for vulnerabilities and agentic risk

Overview

This Kroger shopping skill is mostly purpose-aligned, but it should be reviewed because it can use location, modify a connected cart, and recommends unpinned setup installs.

Install only if you are comfortable sharing approximate location and shopping intent with AgentPMT/Kroger services, and treat cart additions as account-changing actions that should be confirmed by you before execution. Prefer the ClawHub/OpenClaw install route or pinned, verified setup commands over the unpinned npx examples.

Vulnerability Patterns
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
  • 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
Findings (2)

T05 · Unauthorized Access and Privilege Escalation

Warning
Location
SKILL.md:31
Finding

Automatic Disclosure of User ZIP Code to Third-Party Services

Content
View full analysis

Vulnerability Details

File Location: SKILL.md, lines 31-37
Vulnerability Type: Automatic transmission of sensitive location data
Risk Level: Medium

Code Snippet:

markdown
##### find_stores

Find nearby Kroger-family stores. The user's location (zip code) is injected automatically by the platform.

**Required parameters:** None (zip code is injected automatically)

Technical Analysis

The find_stores action automatically injects the user's ZIP code even though location is not represented as an explicit action parameter. The Skill then instructs the Agent to invoke this action as the mandatory first step in grocery-search workflows.

A ZIP code is approximate location data and may reveal a user's residence, workplace, or current travel area. Its use is functionally relevant to finding nearby stores, but automatic injection prevents the Agent and user from reviewing or minimizing the information before transmission. The documentation does not specify whether explicit consent is obtained, which parties receive the ZIP code, how long it is retained, or whether it is included in logs.

This design therefore exceeds a strict consent-based least-privilege model. The store-search operation needs a search area, but it does not inherently require silently obtaining the location associated with the user's account. A manually supplied ZIP code or coarse location would provide the same core functionality with greater user control.

Attack Path

  1. A user asks the Agent to search for grocery products or nearby Kroger stores.
  2. The Skill requires the Agent to begin with find_stores.
  3. The platform retrieves and injects the user's ZIP code without exposing it in the action parameters.
  4. The resulting request is sent through AgentPMT and potentially onward to Kroger infrastructure.
  5. AgentPMT, downstream providers, or compromised service-side logging systems can associate the location with the use ...[truncated 906 chars]
Remediation
View remediation

Remediation Suggestions

  1. Expose the ZIP code as an explicit find_stores parameter rather than injecting it invisibly.
  2. Obtain clear user confirmation before transmitting account-derived location information.
  3. Allow users to enter a different ZIP code so that an account address is not required.
  4. Use only the minimum location precision necessary for store discovery.
  5. Document all recipients of the location data, including AgentPMT and downstream Kroger services.
  6. Document retention, logging, deletion, and privacy-policy details.
  7. Avoid including location information in prompts, diagnostic output, analytics, and application logs unless strictly necessary.
  8. Permit product-detail searches that do not require local availability without first invoking find_stores.

T08 · Insecure Dependencies

Warning
Location
SKILL.md:282
Finding

Unpinned Third-Party Skill Installation Through npx

Content
View full analysis

Vulnerability Details

File Location: SKILL.md, lines 282-295
Vulnerability Type: Unpinned external dependencies and mutable installation sources
Risk Level: Medium

Code Snippet:

markdown
Core AgentPMT setup skills:
- What AgentPMT is: ../what-is-agentpmt
  - ClawHub page: https://clawhub.ai/agentpmt/what-is-agentpmt
  - OpenClaw install: `openclaw skills install what-is-agentpmt`
  - skills.sh install: `npx skills add AgentPMT/agent-skills --skill what-is-agentpmt`
- AgentPMT account MCP/REST setup: ../agentpmt-account-mcp-rest-api-setup
  - ClawHub page: https://clawhub.ai/agentpmt/agentpmt-account-mcp-rest-api-setup
  - OpenClaw install: `openclaw skills install agentpmt-account-mcp-rest-api-setup`
  - skills.sh install: `npx skills add AgentPMT/agent-skills --skill agentpmt-account-mcp-rest-api-setup`

skills.sh install script:

```bash
npx skills add AgentPMT/agent-skills --skill what-is-agentpmt
npx skills add AgentPMT/agent-skills --skill agentpmt-account-mcp-rest-api-setup
text

### Technical Analysis

The Skill directs users to run `npx` and install setup skills from external sources without pinning the command-line package version, repository commit, release version, checksum, or cryptographic signature. Consequently, the content installed at execution time can differ from the content that existed when this Skill was audited.

This is especially sensitive because one of the external skills handles AgentPMT account, MCP, and REST setup. Such setup instructions may operate near authentication tokens, API credentials, account configuration, or connected-service permissions. The external skill contents are not present in the audited project, so their behavior and requested privileges cannot be verified from this artifact.

The reviewed instructions warn users not to place secrets in prompts or logs, and there is no direct evidence that the dependencies are currently malicious. The 
...[truncated 1595 chars]
Remediation
View remediation

Remediation Suggestions

  1. Pin the npx package to a reviewed, immutable version.
  2. Pin AgentPMT/agent-skills to a specific commit hash or signed release.
  3. Publish and verify cryptographic checksums or signatures for all installed Skill files.
  4. Prefer vendoring the reviewed setup instructions in the package when licensing and maintenance requirements permit.
  5. Display the files, commands, endpoints, and permissions that will be installed before execution.
  6. Require explicit user approval before installing or executing third-party content.
  7. Run installation in a sandbox with restricted filesystem, credential, and network access.
  8. Prevent setup dependencies from reading unrelated environment variables or credential stores.
  9. Re-audit dependency updates before changing pinned versions.
  10. Use a trusted lockfile or equivalent integrity mechanism for all transitive installation dependencies.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
Findings (10)

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The skill provides an add_to_cart action that modifies the user's Kroger account state, but it does not require an explicit user-facing confirmation step immediately before the mutation. In an agent context, this can lead to unauthorized or surprising account actions, especially if an upstream prompt or workflow misinterprets user intent.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
89% confidence
Finding

The skill instructs users to run npx skills ... without pinning a specific package version or commit, which creates a supply-chain risk: future package updates or a compromised upstream release could execute different code than the author reviewed. Because these commands are presented as setup steps for obtaining adjacent skills, the risk is real even though it is not unique to this product skill.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
89% confidence
Finding

This line again recommends npx skills without version pinning, allowing execution of whatever package version is current at install time. That exposes users to dependency hijacking, malicious updates, or breaking changes that could alter installed skill behavior.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
89% confidence
Finding

The install script uses unpinned npx skills, which is a classic reproducibility and supply-chain weakness. Anyone following the instructions later may download and execute a different package than intended, including a maliciously published version.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
89% confidence
Finding

Like the other occurrences, this unpinned npx skills command relies on mutable upstream package state. In an agent-skill ecosystem, that can lead to arbitrary code execution during installation if the package or a dependency is compromised.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
88% confidence
Finding

This reference still directs users to an unpinned npx skills command, carrying the same supply-chain and non-reproducibility risk. The fact that it appears in a security/reference section does not reduce the danger; users may treat it as authoritative setup guidance.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
88% confidence
Finding

The command fetches and runs a mutable package version at execution time, which could be abused through a malicious release or dependency compromise. Because the skill encourages users to use this command to install prerequisite setup skills, the exposure extends beyond read-only documentation into code execution on the client side.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

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

md
- What AgentPMT is: ../what-is-agentpmt (ClawHub: `what-is-agentpmt`, page: https://clawhub.ai/agentpmt/what-is-agentpmt; skills.sh: `npx skills add AgentPMT/agent-skills --skill what-is-agentpmt`)
- AgentPMT account MCP/REST setup: ../agentpmt-account-mcp-rest-api-setup (ClawHub: `agentpmt-account-mcp-rest-api-setup`, page: https://clawhub.ai/agentpmt/agentpmt-account-mcp-rest-api-setup; skills.sh: `npx skills add AgentPMT/agent-skills --skill agentpmt-account-mcp-rest-api-setup`)
- Marketplace product: https://www.agentpmt.com/marketplace/grocery-shopping-kroger
- AgentPMT main MCP server: https://api.agentpmt.com/mcp/
- AgentPMT REST invoke endpoint: https://api.agentpmt.com/products/purchase

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

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

md
- What AgentPMT is: ../what-is-agentpmt (ClawHub: `what-is-agentpmt`, page: https://clawhub.ai/agentpmt/what-is-agentpmt; skills.sh: `npx skills add AgentPMT/agent-skills --skill what-is-agentpmt`)
- AgentPMT account MCP/REST setup: ../agentpmt-account-mcp-rest-api-setup (ClawHub: `agentpmt-account-mcp-rest-api-setup`, page: https://clawhub.ai/agentpmt/agentpmt-account-mcp-rest-api-setup; skills.sh: `npx skills add AgentPMT/agent-skills --skill agentpmt-account-mcp-rest-api-setup`)
- Marketplace product: https://www.agentpmt.com/marketplace/grocery-shopping-kroger
- AgentPMT main MCP server: https://api.agentpmt.com/mcp/
- AgentPMT REST invoke endpoint: https://api.agentpmt.com/products/purchase

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
82% confidence
Finding

The skill states that user zip code/location is injected automatically, but it does not prominently warn that location data is being used and transmitted to an external service. While zip code is less sensitive than precise GPS data, it is still personal location information and should be disclosed clearly in a privacy-sensitive workflow.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.