Back to skill

Security audit

Maxun

Security checks for vulnerabilities and agentic risk

Overview

This Maxun skill appears to be a real service integration, but it requests excessive local execution authority and includes unsafe helper-script behavior that users should review before installing.

Review this skill before installing. Use it only with a narrowly scoped execution policy, keep approval prompts on for run and abort actions, avoid running it from directories containing untrusted .env files, and do not allow arbitrary MAXUN_BASE_URL values to receive your Maxun API key.

Vulnerability Patterns
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
  • Insecure Skill Coding PracticesFinds exploitable flaws such as hardcoded secrets or command injection
  • 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 (4)

T09 · Insecure Skill Coding Practices

Error
Location
scripts/maxun.sh:43
Finding

Arbitrary Python Code Execution Through Unsafe Limit Interpolation

Content
View full analysis
Remediation
View remediation
&2 exit 2 fi ``` Restrict the execution policy to the documented commands and argument formats instead of relying only on instructions in `SKILL.md`. ]]>

T09 · Insecure Skill Coding Practices

Error
Location
scripts/maxun.sh:14
Finding

Arbitrary Shell Execution Through Automatic Sourcing of Working-Directory .env

Content
View full analysis
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Error
Location
scripts/maxun.sh:20
Finding

Maxun API Key Disclosure Through Unrestricted Base URL Override

Content
View full analysis
&2 exit 1 fi AUTH_HEADER="x-api-key: $API_KEY" _get() { curl -sf -H "$AUTH_HEADER" -H "Content-Type: application/json" "$BASE_URL$1" } ``` The same destination is also used for authenticated POST requests: ```bash _post() { local path="$1" local body="${2:-{}}" curl -sf -X POST -H "$AUTH_HEADER" -H "Content-Type: application/json" \ -d "$body" "$BASE_URL$path" } ``` ### Technical Analysis The script sends `MAXUN_API_KEY` in the `x-api-key` header to any destination selected through `MAXUN_BASE_URL`. There is no scheme validation, hostname allowlist, or trust-boundary check before attaching the credential. This is particularly dangerous in combination with the automatic `.env` sourcing behavior. An attacker-controlled `.env` does not need to contain executable shell syntax to cause credential disclosure; it can simply assign an attacker URL to `MAXUN_BASE_URL`. The next list, get, run, result, runs, or abort operation sends the key to that server. A configurable endpoint can be legitimate for development or self-hosting, but attaching a production secret to an unrestricted destination violates least-privilege and credential-scoping principles. ### Attack Path 1. The attacker controls an environment value or a working-directory `.env` file. 2. The attacker sets `MAXUN_BASE_URL` to a server they operate. 3. The victim invokes any supported Maxun command. 4. `_get` or `_post` constructs a request to the attacker’s URL. 5. `curl` includes `x-api-key: ` in the request. 6. The attacker records the header and reuses the creden ...[truncated 366 chars]
Remediation
View remediation

T05 · Unauthorized Access and Privilege Escalation

Error
Location
SKILL.md:93
Finding

Unrestricted Gateway Command Execution with User Approval Disabled

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
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Rogue AgentSelf-Modification, Session Persistence
Findings (11)

Context-Inappropriate Capability

High
Category
Not specified by scanner
Confidence
98% confidence
Finding

The setup directs users to enable the exec tool with security: full, which grants unrestricted shell execution for a skill that only needs to interact with a specific service. This broadens the blast radius from a scoped API integration to arbitrary command execution if the skill is abused, modified, or combined with prompt injection.

Content

No source excerpt is available for this finding.

Missing User Warnings

High
Category
Not specified by scanner
Confidence
97% confidence
Finding

The setup disables execution confirmation (ask: off) while the skill can run and abort scraping jobs, removing an important human-in-the-loop safeguard. If the skill is invoked mistakenly or influenced by untrusted content, commands can execute immediately without user awareness or approval.

Content

No source excerpt is available for this finding.

Credential Access

High
Category
Privilege Escalation
Confidence
91% confidence
Finding

The script sources a local .env file as shell code, not as passive configuration. If an attacker can modify .env in the working directory, they can achieve arbitrary command execution when the skill runs, and the auto-export behavior can also expose unexpected variables to subprocesses.

Content

Scanner excerpt · scripts/maxun.sh (reported line 15)May include surrounding context.

sh
set -euo pipefail

if [ -f .env ]; then
  set -a
  source .env
  set +a

Credential Access

High
Category
Privilege Escalation
Confidence
88% confidence
Finding

The .env loading block exports all variables from a locally sourced file into the environment of curl and python3 subprocesses. In the context of an agent skill, this increases risk because untrusted workspace content can influence execution and propagate attacker-controlled environment variables into downstream tools.

Content

Scanner excerpt · scripts/maxun.sh (reported line 17)May include surrounding context.

sh
if [ -f .env ]; then
  set -a
  source .env
  set +a
fi

External Script Fetching

High
Category
Supply Chain
Confidence
90% confidence
Finding

Remote code is downloaded and executed. This bypasses code review and could introduce malicious code.

Content

Scanner excerpt · scripts/maxun.sh (reported line 32)May include surrounding context.

sh
AUTH_HEADER="x-api-key: $API_KEY"

_get() {
  curl -sf -H "$AUTH_HEADER" -H "Content-Type: application/json" "$BASE_URL$1"
}

_post() {

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
92% confidence
Finding

The skill invokes shell execution via the exec tool but does not declare a restrictive tool scope such as allowed-tools or permissions boundaries. That creates ambiguity about what the skill is allowed to execute and increases the risk that prompt-driven behavior or future edits could expand into arbitrary command execution beyond the intended Maxun wrapper commands.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The trigger description is broad enough that common phrases about scraping or robots may invoke the skill unexpectedly, increasing the chance of unintended execution. In a skill that can launch or abort jobs, over-invocation raises the risk of unauthorized actions or unnecessary data collection.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The documentation adds an abort capability that is not reflected in the manifest description or argument hint, so the skill can perform a more destructive action than users and orchestrators would reasonably expect. Hidden or under-declared capabilities weaken reviewability and can lead to accidental invocation of state-changing operations.

Content

No source excerpt is available for this finding.

Session Persistence

Medium
Category
Rogue Agent
Confidence
60% 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 · SKILL.md (reported line 90)May include surrounding context.

md
## Error Handling

- No robots found → tell user to create one at https://app.maxun.dev
- Robot still running → call exec with `maxun result <robotId> <runId>`

## Setup (for new installations)

External Transmission

Medium
Category
Data Exfiltration
Confidence
70% 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 · scripts/maxun.sh (reported line 32)May include surrounding context.

sh
AUTH_HEADER="x-api-key: $API_KEY"

_get() {
  curl -sf -H "$AUTH_HEADER" -H "Content-Type: application/json" "$BASE_URL$1"
}

_post() {

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

The abort command triggers an irreversible action against an in-progress run via a POST request, but this path has no confirmation prompt and no user-facing warning near the operation itself. While the command name implies stopping a run, the code does not disclose the impact at execution time beyond the terse usage label.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.