T09 · Insecure Skill Coding Practices
- Location
SKILL.md:59- Finding
API Key Exposed Through Command-Line Arguments
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 59-62
Vulnerability Type: API key disclosure through process arguments and shell history
Risk Level: MediumVulnerable Code
bash openclaw onboard --auth-choice aisa-api-key --aisa-api-key "your-key-here"Technical Analysis
The documented setup procedure instructs users to place an AIsa API key directly in a command-line argument. When a real key replaces the placeholder, the secret may be exposed through:
- Shell history files
- Process-listing and process-monitoring tools
- Terminal session recordings
- Endpoint audit and command telemetry
- Debug logs or diagnostic bundles
Although the repository contains only a placeholder and no hardcoded credential, users following this workflow would expose an operational secret through an unsafe input channel.
Attack Path
- A user replaces
your-key-herewith a valid AIsa API key and executes the documented command. - The command is retained in shell history, captured by terminal or audit logging, or temporarily exposed in the process argument list.
- A local user, monitoring agent, administrator of a shared environment, or party with access to collected logs retrieves the key.
- The party submits authenticated requests to the AIsa API using the compromised credential.
- The key remains usable until it is revoked, rotated, expires, or reaches an account-side limit.
Impact Assessment
Exploitation does not directly grant operating-system privileges. It grants the access associated with the compromised AIsa credential, potentially allowing unauthorized model requests, consumption of paid quota, exposure of account-level API capabilities, and service disruption through quota exhaustion. Scope is limited by the permissions, billing controls, rate limits, and lifecycle of the exposed key.
- Remediation
View remediation
Remediation Suggestions
-
Remove the command-line option that accepts the API key directly from the documentation.
-
Prefer an interactive secret prompt that disables terminal echo and does not preserve the value in history.
-
Alternatively, accept the key through standard input or a credential manager supported by the runtime.
-
If environment variables are used, document a method that avoids placing the secret in shell history, such as reading it silently:
bash read -rsp "AIsa API key: " AISA_API_KEY echo export AISA_API_KEY -
Warn users not to put real keys in command-line arguments, committed configuration files, shell startup files with weak permissions, screenshots, or support logs.
-
Recommend immediate key revocation and rotation if the unsafe command has already been used in a logged or shared environment.
-
Ensure diagnostic and telemetry systems redact credential-bearing arguments.
-
