T09 · Insecure Skill Coding Practices
- Location
SKILL.md:38- Finding
API Credential Exposure Through Command-Line Arguments, Shell History, and Terminal Output
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill is a coherent AIsa setup guide, but it should be reviewed because it encourages risky API-key handling and overstates privacy for an external model provider.
Install only if you intend to route OpenClaw model prompts and outputs through AIsa. Treat AISA_API_KEY as a secret: prefer the interactive onboarding flow or a protected secret store, avoid passing the key in command-line arguments, and do not run echo $AISA_API_KEY in shared terminals or logs. Verify AIsa and Moonshot privacy terms yourself before sending regulated or highly sensitive data.
SKILL.md:38API Credential Exposure Through Command-Line Arguments, Shell History, and Terminal Output
The skill description includes broad activation triggers such as comparing pricing, switching models, troubleshooting provider configuration, and reacting to generic mentions of API keys or model families. This can cause the skill to activate in unrelated conversations and steer users toward this provider, increasing the chance of inappropriate external-provider guidance or unintended data routing.
The guide tells users to pass the API key via an environment variable and directly on the command line, including --aisa-api-key "你的密钥", but gives no warning that credentials are sensitive. Command-line arguments can be exposed through shell history, process listings, logs, or terminal recordings, which increases the chance of accidental secret leakage.
The statement that users '完全不用担心数据隐私问题' is an absolute privacy assurance that is not technically safe to make. Even if a zero-data-retention agreement exists, risks can remain in transit, logging layers, customer misconfiguration, legal changes, or upstream provider behavior, so unconditional claims may cause users to send sensitive data under false assumptions.
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
"models": {
"providers": {
"aisa": {
"baseUrl": "https://api.aisa.one/v1",
"apiKey": "${AISA_API_KEY}",
"api": "openai-completions",
"models": [
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
"models": {
"providers": {
"aisa": {
"baseUrl": "https://api.aisa.one/v1",
"apiKey": "${AISA_API_KEY}",
"api": "openai-completions",
"models": [
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
"models": {
"providers": {
"aisa": {
"baseUrl": "https://api.aisa.one/v1",
"apiKey": "${AISA_API_KEY}",
"api": "openai-completions",
"models": [
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
"models": {
"providers": {
"aisa": {
"baseUrl": "https://api.aisa.one/v1",
"apiKey": "${AISA_API_KEY}",
"api": "openai-completions",
"models": [
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
"models": {
"providers": {
"aisa": {
"baseUrl": "https://api.aisa.one/v1",
"apiKey": "${AISA_API_KEY}",
"api": "openai-completions",
"models": [
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
"models": {
"providers": {
"aisa": {
"baseUrl": "https://api.aisa.one/v1",
"apiKey": "${AISA_API_KEY}",
"api": "openai-completions",
"models": [
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
"models": {
"providers": {
"aisa": {
"baseUrl": "https://api.aisa.one/v1",
"apiKey": "${AISA_API_KEY}",
"api": "openai-completions",
"models": [
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
"models": {
"providers": {
"aisa": {
"baseUrl": "https://api.aisa.one/v1",
"apiKey": "${AISA_API_KEY}",
"api": "openai-completions",
"models": [
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
"models": {
"providers": {
"aisa": {
"baseUrl": "https://api.aisa.one/v1",
"apiKey": "${AISA_API_KEY}",
"api": "openai-completions",
"models": [
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
"models": {
"providers": {
"aisa": {
"baseUrl": "https://api.aisa.one/v1",
"apiKey": "${AISA_API_KEY}",
"api": "openai-completions",
"models": [
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
"models": {
"providers": {
"aisa": {
"baseUrl": "https://api.aisa.one/v1",
"apiKey": "${AISA_API_KEY}",
"api": "openai-completions",
"models": [
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
"models": {
"providers": {
"aisa": {
"baseUrl": "https://api.aisa.one/v1",
"apiKey": "${AISA_API_KEY}",
"api": "openai-completions",
"models": [
Passing an API key directly on the command line can expose the secret through shell history, process listings, terminal logging, CI logs, or support screenshots. In a provider-setup skill context, users are likely to copy-paste commands verbatim, which increases the chance of credential leakage and subsequent unauthorized API use.
The guide makes absolute privacy assurances such as users 'completely need not worry' and that prompts/replies are 'completely private' based on a zero-data-retention arrangement. Zero retention does not guarantee end-to-end privacy, absence of logging everywhere, lawful access limitations, transport/security correctness, or misuse by intermediaries, so these claims can mislead users into sending sensitive data under a false sense of safety.
文件标题表明这是“中文使用指南”,但文档中未说明这是可选的本地化版本,也未提供语言选择或适用范围说明。根据规则,若技能内容强制特定语言而没有用户选择或明确的地区性正当理由,可视为语言/地区策略问题。
The curl example sends a bearer token to a third-party endpoint but does not warn that the API key and associated request metadata are being transmitted outside the local environment. While this is expected for an API call, omission of that warning can still mislead users about data handling and increase accidental disclosure risk in copied commands or monitored environments.
No suspicious patterns detected.