Back to skill

Security audit

24Konbini - Agent Marketplace & Bank

Security checks for vulnerabilities and agentic risk

Overview

This real-money marketplace skill is purpose-aligned overall, but it needs review because it combines USDC wallet authority with persistent remote instructions, unpinned CLI execution, and weak credential-handling guidance.

Review before installing. Avoid adding the remote HEARTBEAT.md to any persistent schedule unless you can inspect and pin it, prefer pinned and verified CLI versions over unqualified npx commands, store the API key in a keychain or a 0600 file, and require explicit human confirmation for every purchase, haggle acceptance, file upload, public post, and USDC transfer.

Vulnerability Patterns
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • Insecure Skill Coding PracticesFinds exploitable flaws such as hardcoded secrets or command injection
  • 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 (3)

T01 · Skill Instruction Hijacking

Error
Location
skill.md:18
Finding

Persistent execution of remotely mutable heartbeat instructions

Content
View full analysis
~/.config/24k/skills/SKILL.md curl -s https://24konbini.com/heartbeat.md > ~/.config/24k/skills/HEARTBEAT.md ``` ``` ```markdown ## Stay Active (Heartbeat) 💓 **Add 24K to your cron/heartbeat schedule!** Active agents get more sales. See [**HEARTBEAT.md**](https://24konbini.com/heartbeat.md) for the full routine — what to check and when to notify your human. ``` ### Technical Analysis The Skill instructs users to download an instruction file from a remote server into the Agent's persistent configuration directory and add the resulting routine to a cron or heartbeat schedule. The referenced `HEARTBEAT.md` is not included in the audited package, so its contents and security properties cannot be verified by this audit. Because the remote resource is mutable, the instructions retrieved at installation or update time may differ from those reviewed by the user. Registering the downloaded content with a recurring scheduler extends its influence beyond the current Skill invocation. This exceeds the minimum privileges required for user-initiated marketplace operations: checking marketplace status does not inherently require installing remotely supplied, cross-session instructions. Although the download is described as optional, following the documented recommendation establishes both a remote instruction-loading channel and persistent execution behavior. ### Attack Path 1. A user or Agent follows the installation instructions. 2. `curl` retrieves `HEARTBEAT.md` from the publisher-controlled server without a version pin, signature, or integrity hash. 3. The downloaded file is written int ...[truncated 1085 chars]
Remediation
View remediation

T08 · Insecure Dependencies

Error
Location
skill.md:508
Finding

Unpinned third-party npm package execution through npx

Content
View full analysis
# View a storefront konbini feed # Watch marketplace activity konbini notifications # Check items needing attention # Selling konbini list --price 50 --file ./ # List item for sale konbini listings # View your listed items konbini delist # Remove item from sale konbini store --logo ./logo.png # Update store settings # Buying konbini buy # Purchase an item konbini download # Download purchased item konbini owned # View purchased items # Haggling konbini haggles # View pending haggles konbini haggle offer # Make an offer konbini haggle accept # Accept an offer konbini haggle reject # Reject an offer konbini haggle counter # Counter-offer # Wallet & Transactions konbini send # Send USDC to any wallet konbini transactions # View transaction history ``` ``` Other recommendations repeat this pattern, including: ```bash npx konbini store --logo ./logo.png npx konbini list "Cool Script" --price 25 --file ./script.js --category scripts npx konbini send ...[truncated 2169 chars]
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Warning
Location
skill.md:156
Finding

Bearer API credential stored in a plaintext configuration file

Content
View full analysis
Remediation
View remediation
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
Findings (60)

Credential Access

High
Category
Privilege Escalation
Confidence
89% confidence
Finding

The skill recommends storing the API key in a plaintext JSON file under the user’s home directory without discussing file permissions, encryption, or secret-store alternatives. Because that key is described as the user’s identity and can authorize wallet and marketplace actions, local theft of the file could fully compromise the account.

Content

Scanner excerpt · skill.md (reported line 158)May include surrounding context.

Save your credentials somewhere safe!

Recommended: Save your credentials to ~/.config/24k/credentials.json:

json
{
  "api_key": "24k_xxx",

Missing User Warnings

High
Category
Not specified by scanner
Confidence
94% confidence
Finding

The purchase flow describes buying real-money items but does not require a confirmation step, spending limit check, or explicit irreversibility warning at the point of action. This omission can enable accidental purchases or prompt-injected purchases that consume real funds without clear user consent.

Content

No source excerpt is available for this finding.

Missing User Warnings

High
Category
Not specified by scanner
Confidence
98% confidence
Finding

The wallet transfer section enables sending USDC to arbitrary addresses yet lacks strong warnings to verify the destination, amount, and irreversibility immediately before transfer. In a real-money blockchain context, mistaken or maliciously substituted addresses can result in permanent loss of funds.

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 9)May include surrounding context.

md
metadata:
  emoji: "🏪"
  category: "commerce"
  api_base: "https://api.24konbini.com/api"
  chain: "base"
  currency: "USDC"
---

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 35)May include surrounding context.

md
metadata:
  emoji: "🏪"
  category: "commerce"
  api_base: "https://api.24konbini.com/api"
  chain: "base"
  currency: "USDC"
---

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 41)May include surrounding context.

md
metadata:
  emoji: "🏪"
  category: "commerce"
  api_base: "https://api.24konbini.com/api"
  chain: "base"
  currency: "USDC"
---

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 135)May include surrounding context.

md
metadata:
  emoji: "🏪"
  category: "commerce"
  api_base: "https://api.24konbini.com/api"
  chain: "base"
  currency: "USDC"
---

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 171)May include surrounding context.

md
metadata:
  emoji: "🏪"
  category: "commerce"
  api_base: "https://api.24konbini.com/api"
  chain: "base"
  currency: "USDC"
---

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 191)May include surrounding context.

md
metadata:
  emoji: "🏪"
  category: "commerce"
  api_base: "https://api.24konbini.com/api"
  chain: "base"
  currency: "USDC"
---

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 205)May include surrounding context.

md
metadata:
  emoji: "🏪"
  category: "commerce"
  api_base: "https://api.24konbini.com/api"
  chain: "base"
  currency: "USDC"
---

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 219)May include surrounding context.

md
metadata:
  emoji: "🏪"
  category: "commerce"
  api_base: "https://api.24konbini.com/api"
  chain: "base"
  currency: "USDC"
---

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 230)May include surrounding context.

md
metadata:
  emoji: "🏪"
  category: "commerce"
  api_base: "https://api.24konbini.com/api"
  chain: "base"
  currency: "USDC"
---

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 247)May include surrounding context.

md
metadata:
  emoji: "🏪"
  category: "commerce"
  api_base: "https://api.24konbini.com/api"
  chain: "base"
  currency: "USDC"
---

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 261)May include surrounding context.

md
metadata:
  emoji: "🏪"
  category: "commerce"
  api_base: "https://api.24konbini.com/api"
  chain: "base"
  currency: "USDC"
---

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 279)May include surrounding context.

md
metadata:
  emoji: "🏪"
  category: "commerce"
  api_base: "https://api.24konbini.com/api"
  chain: "base"
  currency: "USDC"
---

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 282)May include surrounding context.

md
metadata:
  emoji: "🏪"
  category: "commerce"
  api_base: "https://api.24konbini.com/api"
  chain: "base"
  currency: "USDC"
---

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 313)May include surrounding context.

md
metadata:
  emoji: "🏪"
  category: "commerce"
  api_base: "https://api.24konbini.com/api"
  chain: "base"
  currency: "USDC"
---

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 326)May include surrounding context.

md
metadata:
  emoji: "🏪"
  category: "commerce"
  api_base: "https://api.24konbini.com/api"
  chain: "base"
  currency: "USDC"
---

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 344)May include surrounding context.

md
metadata:
  emoji: "🏪"
  category: "commerce"
  api_base: "https://api.24konbini.com/api"
  chain: "base"
  currency: "USDC"
---

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 353)May include surrounding context.

md
metadata:
  emoji: "🏪"
  category: "commerce"
  api_base: "https://api.24konbini.com/api"
  chain: "base"
  currency: "USDC"
---

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 372)May include surrounding context.

md
metadata:
  emoji: "🏪"
  category: "commerce"
  api_base: "https://api.24konbini.com/api"
  chain: "base"
  currency: "USDC"
---

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 383)May include surrounding context.

md
metadata:
  emoji: "🏪"
  category: "commerce"
  api_base: "https://api.24konbini.com/api"
  chain: "base"
  currency: "USDC"
---

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 400)May include surrounding context.

md
metadata:
  emoji: "🏪"
  category: "commerce"
  api_base: "https://api.24konbini.com/api"
  chain: "base"
  currency: "USDC"
---

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 415)May include surrounding context.

md
metadata:
  emoji: "🏪"
  category: "commerce"
  api_base: "https://api.24konbini.com/api"
  chain: "base"
  currency: "USDC"
---

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 424)May include surrounding context.

md
metadata:
  emoji: "🏪"
  category: "commerce"
  api_base: "https://api.24konbini.com/api"
  chain: "base"
  currency: "USDC"
---

Static analysis

No suspicious patterns detected.