Back to skill

Security audit

Molt Sift

Security checks for vulnerabilities and agentic risk

Overview

The skill matches its data-validation and bounty purpose, but it promotes unattended bounty/payment workflows and an unauthenticated public API without enough controls.

Install only for local testing or mock bounty workflows unless you add authentication, bind the API to localhost or a protected network, enforce payout and rate limits, keep wallets isolated, and avoid cron/auto-claim mode with real funds until the payment and PayAClaw integrations are hardened.

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

T05 · Unauthorized Access and Privilege Escalation

Warning
Location
scripts/api_server.py:55
Finding

Unauthenticated Externally Reachable Bounty and Payment-Triggering API

Content
View full analysis
Tuple[Dict[str, Any], int]: """Handle POST /bounty request.""" try: # Parse request data = request.get_json() if not data: return jsonify({ "status": "error", "message": "Request body must be JSON" }), 400 # Validate required fields required = ["raw_data", "amount_usdc", "payout_address"] missing = [f for f in required if f not in data] if missing: return jsonify({ "status": "error", "message": f"Missing required fields: {', '.join(missing)}" }), 400 raw_data = data["raw_data"] schema = data.get("schema") rules = data.get("validation_rules", "json-strict") amount_usdc = data["amount_usdc"] payout_address = data["payout_address"] # Validate amount if not isinstance(amount_usdc, (int, float)) or amount_usdc <= 0: return jsonify({ "status": "error", "message": "amount_usdc must be a positive number" }), 400 # Validate address if not self.payment_handler._is_v ...[truncated 4737 chars]
Remediation
View remediation
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Rogue AgentSelf-Modification, Session Persistence
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
Findings (39)

Instruction Override

High
Category
Prompt Injection
Confidence
70% confidence
Finding

This pattern attempts to override system instructions or ignore safety constraints. Without LLM analysis, manual review is recommended.

Content

Scanner excerpt · scripts/api_server.py (reported line 213)May include surrounding context.

python
Args:
        port: Port to run server on
        debug: Enable debug mode
    """
    server = BountyAPIServer(port=port)
    server.run(debug=debug)

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The deployment guide presents API server functionality as available, while later sections explicitly say parts are only implemented 'when' or 'once' implemented. This can mislead users into exposing services they believe are production-ready, creating unsafe deployments, broken access controls, or reliance on nonexistent validation and payment logic.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
75% confidence
Finding

Docker image references without a specific tag (:latest is implicit) or digest (@sha256:...) can be silently replaced by a malicious image.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The guide recommends automated bounty claiming on a cron schedule without a clear warning that the command performs repeated external actions tied to payouts and potentially financial operations. In skill context, this is especially dangerous because it normalizes unattended execution against external services and may lead users to incur costs, claim unintended bounties, or expose payout workflows without review.

Content

No source excerpt is available for this finding.

Session Persistence

Medium
Category
Rogue Agent
Confidence
85% confidence
Finding

Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.

Content

Scanner excerpt · DEPLOYMENT_GUIDE.md (reported line 115)May include surrounding context.

Run bounty agent on a schedule:

bash
# In crontab
*/5 * * * * /usr/local/bin/molt-sift bounty claim --auto --payout ADDR > /var/log/molt-sift.log 2>&1

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The Security section claims protections such as wallet key management and rate limiting, but elsewhere the guide says those controls are only planned. This creates a false sense of security that may cause operators to deploy the skill assuming safeguards exist when they do not, increasing risk of abuse, financial loss, or exposure of sensitive operations.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The document claims the system is 'fully implemented,' 'tested,' and 'production-ready' for USDC payments, but later states both the PayAClaw and x402/Solana integrations are mocks that still need replacement for production. This kind of contradictory documentation can cause operators or downstream users to deploy a non-production payment workflow under false assumptions, leading to failed settlements, operational misuse, or trust and financial issues.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The document promotes autonomous watching, auto-claiming, result submission, and payment triggering without any warning, approval boundary, or mention of safeguards for actions affecting external systems and funds. In an agent skill context, this increases the risk that users enable unattended behavior that can spend money, claim jobs incorrectly, or interact with third-party services unexpectedly.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The architecture section presents 'USDC transfer,' 'transaction confirmation,' and 'on-chain settlement' as if they are active behaviors, while later sections disclose that the payment layer is mocked. Misrepresenting simulated payment behavior as real on-chain settlement is dangerous because it can mislead integrators into relying on non-existent security and settlement guarantees.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

The bounty-posting example shows raw data and payout instructions being sent to an HTTP API without warnings about data sensitivity, authentication, transport security, or the fact that the request may initiate payment-related processing. This can normalize insecure usage patterns and cause users to expose sensitive information or trigger financial operations over an inadequately secured interface.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The conclusion repeats claims of 'real-time Solana USDC payments' and 'production-ready architecture' despite earlier statements that critical integrations remain mocked and require additional deployment work. This is dangerous because summary sections are often what decision-makers rely on, increasing the likelihood of unsafe deployment or overtrust in the system's financial controls.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

This document explicitly promotes autonomous bounty claiming, job processing, and USDC payment behavior, but it does not warn users that the described workflow can trigger financial transactions and continuous external actions. In a skill/package context, presenting this as normal operation increases the chance that operators deploy or invoke it without understanding wallet, escrow, or automated-claim risks, which can lead to unintended fund movement or abuse of connected infrastructure.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The file repeatedly claims the system is 'production ready' and 'ready for immediate deployment' while also listing missing controls such as API authentication, real payment integration hardening, persistence, and monitoring. That mismatch can mislead users into deploying a financially capable service with inadequate protections, increasing the likelihood of unauthorized access, fraudulent bounty creation/claiming, or unsafe use of real Solana payment accounts.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
89% confidence
Finding

This markdown file instructs users to run molt-sift bounty claim --auto and provide a payout address, which implies unattended network interaction and potentially financially relevant actions. The README does not include any warning about auto-claiming behavior, outbound requests, or the consequences of submitting jobs/results to external platforms.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
84% confidence
Finding

The documentation tells users to start an API server and POST raw data plus a payment address to it, but it does not warn that the service accepts network requests and processes potentially sensitive data. For markdown files, behaviors affecting privacy or system integrity should be disclosed clearly to users.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
60% 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 · CLAWHUB_UPLOAD_GUIDE.md (reported line 120)May include surrounding context.

Then POST to http://localhost:8000/bounty:

bash
curl -X POST http://localhost:8000/bounty \
  -H "Content-Type: application/json" \
  -d '{
    "raw_data": {"symbol": "BTC", "price": 42850},

External Transmission

Medium
Category
Data Exfiltration
Confidence
60% 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 · IMPLEMENTATION_SUMMARY.md (reported line 169)May include surrounding context.

Then POST to http://localhost:8000/bounty:

bash
curl -X POST http://localhost:8000/bounty \
  -H "Content-Type: application/json" \
  -d '{
    "raw_data": {"symbol": "BTC", "price": 42850},

External Transmission

Medium
Category
Data Exfiltration
Confidence
60% 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 · README.md (reported line 56)May include surrounding context.

Then POST to http://localhost:8000/bounty:

bash
curl -X POST http://localhost:8000/bounty \
  -H "Content-Type: application/json" \
  -d '{
    "raw_data": {"symbol": "BTC", "price": 42850},

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill explicitly promotes autonomous bounty watching, auto-claiming jobs, processing them, and triggering USDC payments without any visible safety warning, approval gate, spend limits, or operator confirmation. In an agent-skill context, instructions that normalize unattended financial actions can lead to unauthorized transactions, abuse of connected wallets, or execution of untrusted jobs from external services.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
84% confidence
Finding

The documented API workflow instructs operators to transmit structured data to an HTTP endpoint, which constitutes external data exposure and could include sensitive raw data if used carelessly. While the example uses localhost, the surrounding skill context encourages API deployment and bounty processing, making it plausible that users expose the service beyond localhost and send validation payloads from other systems without adequate authentication, transport security, or data-handling guidance.

Content

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

md
molt-sift api start --port 8000

# In another terminal, post a bounty:
curl -X POST http://localhost:8000/bounty \
  -H "Content-Type: application/json" \
  -d '{
    "raw_data": {

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The manifest explicitly advertises auto-claiming bounty jobs and payout actions tied to Solana/x402 micro-payments, but it provides no warning, consent language, or safety constraints around financial operations or wallet effects. In an agent skill context, this increases the risk that users or autonomous agents invoke actions that create transactions, claims, or payout routing without understanding the financial consequences.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The POST /bounty docstring describes a bounty submission API with a response centered on validation results and a payment transaction, which implies a bounty/job lifecycle. However, the implementation immediately validates data and sends a payment in _handle_bounty_request, while the GET /bounty/<job_id> endpoint queries payaclaw_client.get_job(job_id) even though no job is created or stored during POST processing. This is an active mismatch between the documented endpoint semantics and the implemented behavior.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
87% confidence
Finding

The endpoint automatically initiates a blockchain payment immediately after receiving a POST request, with no authentication, authorization, idempotency control, or explicit confirmation step visible in this code path. In a payment-bearing API exposed to external agents, this makes accidental or malicious submission materially dangerous because a caller can trigger financial loss directly through a single request.

Content

No source excerpt is available for this finding.

Autonomous Decision Making

Medium
Category
Excessive Agency
Confidence
87% confidence
Finding

The method exposes autonomous operation over bounty intake and payment handling, with no approval workflow and a default of automatic payment confirmation. In this context, autonomous decision-making is security-relevant because it authorizes actions against external systems and funds based solely on program logic and remote inputs.

Content

Scanner excerpt · scripts/bounty_agent.py (reported line 48)May include surrounding context.

python
self.claimed_jobs = {}
        self.completed_jobs = []
    
    def watch_and_claim(self, check_interval: int = 30, auto_confirm_payments: bool = True) -> None:
        """
        Watch PayAClaw for bounty jobs and auto-claim.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The agent is designed to continuously watch for jobs, auto-claim them, and by default auto-confirm payments without any human approval step. In a system that touches funds and external job execution, this can cause unintended financial actions, acceptance of malicious or low-quality jobs, or irreversible confirmations if upstream data or counterparties are untrusted.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.