Back to skill

Security audit

Elon马斯克情报内参

Security checks for vulnerabilities and agentic risk

Overview

This skill is a simple demo web service, but it exposes unauthenticated HTTP endpoints on all interfaces and tries multiple undeclared ports, including a payment-link endpoint.

Install only if you intend to run a publicly reachable demo HTTP service. Review network exposure first: restrict it to the declared port, bind to localhost or a controlled interface unless external access is required, and treat the payment-link response as a monetization demo rather than verified intelligence functionality.

Vulnerability Patterns
  • 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
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
Findings (1)

T09 · Insecure Skill Coding Practices

Note
Location
bare.py:4
Finding
Service Listens on Multiple Undeclared Network Ports## Vulnerability Details **File Location**: `bare.py:4, 49-57` **Vulnerability Type**: Excessive network exposure and insecure service configuration **Risk Level**: Low **Vulnerable Code**: ```python host = os.environ.get("HOST") or "0.0.0.0" ``` ```python if __name__ == "__main__": ports = [port] if port else [] for candidate in [8080, 8000, 3000, 80]: if candidate not in ports: ports.append(candidate) started = False for p in ports: try: t = threading.Thread(target=run_on, args=(p,), daemon=True) t.start() ``` ### Technical Analysis The service defaults to binding on `0.0.0.0`, making it reachable through every available network interface. It then starts listener threads for the configured port and every fallback port in the list: `8080`, `8000`, `3000`, and `80`. This behavior exceeds the interface declared in `skill.yaml`, which identifies only port `8080`. Attempting to listen on several undeclared ports unnecessarily increases the network attack surface. Port `80` is also commonly privileged on Unix-like systems, although whether this process can bind to it depends on its runtime privileges and capabilities. Binding failures are suppressed by the broad exception handler in `run_on`, so operators receive no indication of which ports were successfully exposed. The current endpoints return static demonstration data and do not directly expose credentials or privileged operations, which limits the immediate severity. ### Attack Path 1. An operator starts the skill in a container or host that permits inbound network access. 2. The process binds to all interfaces and attempts to open ports `8080`, `8000`, `3000`, and `80`. 3. An attacker with network access scans the host for open ports. 4. The attacker discovers one or more listeners beyond the port declared by the skill configuration. 5. The attacker sends unauthenticated reques ...[truncated 901 chars]
Remediation
## Remediation Suggestions - Bind only to the single validated port supplied by the deployment environment or declared in `skill.yaml`. - Remove automatic probing of ports `8000`, `3000`, and `80`. - Default to `127.0.0.1` when external network access is unnecessary; otherwise require an explicit host configuration before binding to `0.0.0.0`. - Validate that the selected port is in the range `1` through `65535`. - Avoid privileged ports unless they are explicitly required and the process uses a narrowly scoped capability. - Replace silent exception suppression with structured error logging and terminate startup if the intended listener cannot be created. - Apply authentication and authorization before adding sensitive functionality to `/invoke`. - Restrict inbound access using container network policies, host firewalls, or platform-level service configuration.
Vulnerability Patterns
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • 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
Findings (5)

Natural-Language Policy Violations

Medium
Confidence
95% confidence
Finding
The natural-language content of the skill description and usage instructions is presented exclusively in Chinese. This can violate a language/locale policy when no user opt-in, alternative language option, or justification for the locale restriction is provided.

Context-Inappropriate Capability

Medium
Confidence
96% confidence
Finding
The file launches an unauthenticated HTTP server bound to 0.0.0.0 and exposes publicly reachable endpoints, including a monetized /invoke API, despite no legitimate skill function requiring inbound network service behavior. This expands the attack surface, can violate platform expectations, and enables unauthorized external interaction or phishing-like payment solicitation from a deployed agent environment.

Natural-Language Policy Violations

Medium
Confidence
96% confidence
Finding
The HTTP response strings are presented in Chinese only, including the title and payment notice, with no indication that the user can choose another language or that the skill is intentionally limited to a Chinese-speaking audience. This is a natural-language locale policy issue because the file hardcodes a specific language without opt-in or justification.

Natural-Language Policy Violations

Medium
Confidence
95% confidence
Finding
The description is written entirely in Chinese and presents the skill in that language without any indication that users can choose another language or locale. This can violate language or locale policy when a skill implicitly forces a specific language experience without opt-in.

Context-Inappropriate Capability

Low
Confidence
75% confidence
Finding
The code inspects several deployment-style environment variables such as PORT, UVICORN_PORT, and CLAWHUB_PORT to adapt its network binding behavior. In the absence of a declared skill purpose, this infrastructure-aware capability is not clearly justified and expands the skill's operational footprint.

Static analysis

No suspicious patterns detected.