Back to skill

Security audit

openspace-llm-xiaowei

Security checks for vulnerabilities and agentic risk

Overview

The skill is a coherent MiniMax/OpenSpace LLM wrapper, but it ships documentation containing a real-looking API key and uses an unpinned executable dependency.

Review before installing. Do not use the API key shown in the README; treat it as compromised and use your own secret stored outside published documentation. Install `openspace` only from a trusted, pinned version in an isolated environment, and avoid sending confidential prompts or files unless MiniMax/OpenSpace processing is approved for that data.

Vulnerability Patterns
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • 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 (2)

T09 · Insecure Skill Coding Practices

Error
Location
README.md:242
Finding

Hardcoded MiniMax API Credential in Documentation

Content
View full analysis
``` The original line contains a complete `sk-cp-` API credential. Its value is redacted from this report to prevent further disclosure. ### Technical Analysis The repository documentation embeds a complete MiniMax API key in a sample environment configuration. Documentation stored in source control is accessible to repository users, package consumers, mirrors, build systems, and potentially public search or indexing services. Environment-variable syntax does not protect a secret when the value itself is committed to a tracked file. Removing the line in a later commit would also be insufficient if the credential remains available in version-control history, cached artifacts, forks, or published packages. An attacker does not need to execute the skill to obtain this credential. Reading the repository is sufficient. ### Attack Path 1. An attacker obtains access to the repository, a published package, a mirror, or its commit history. 2. The attacker opens `README.md` and extracts the complete value assigned to `OPENSPACE_API_KEY`. 3. The attacker submits requests to the corresponding MiniMax API using the exposed credential. 4. Requests consume the credential owner's quota and may incur charges or trigger provider-side restrictions. 5. The attacker can continue using the credential until it is revoked, expires, or is otherwise disabled. ### Impact Assessment The exposed key may permit unauthorized access to the API account capabilities granted to that credential. The expected scope includes: - Unauthorized LLM API requests. - Consumption of account quota. - Potential billing or subscription abuse. - Service disruption through quota exhaustion or provider rate limiting. - Reputational or operational impact if abusive content is gene ...[truncated 205 chars]
Remediation
View remediation

T08 · Insecure Dependencies

Warning
Location
SKILL.md:28
Finding

Unpinned Third-Party OpenSpace Dependency

Content
View full analysis
Remediation
View remediation
``` 3. Generate and enforce cryptographic hashes using a locked requirements file and `pip --require-hashes`. 4. Explicitly configure the trusted package index and disable unintended supplemental indexes where practical. 5. Commit a dependency lock file and use the same reviewed dependency set in development, CI, and production. 6. Verify the package publisher, project provenance, source repository, and release signatures or attestations where available. 7. Run dependency vulnerability and malware scanning in CI. 8. Install dependencies in an isolated virtual environment using a nonprivileged account. 9. Regularly review updates before changing the pinned version rather than accepting upstream releases automatically. 10. Update both `SKILL.md` and `README.md` so all installation instructions use the same verified and pinned dependency process. ]]>
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
Findings (17)

Intent-Code Divergence

High
Category
Not specified by scanner
Confidence
99% confidence
Finding

The README includes what appears to be a live API key directly in an environment variable example. Publishing credentials in documentation can enable unauthorized use of the third-party LLM service, billing abuse, account takeover of the API tenant, and downstream exposure of prompts or data sent through that account.

Content

No source excerpt is available for this finding.

Missing User Warnings

High
Category
Not specified by scanner
Confidence
99% confidence
Finding

This line exposes a real-looking API key in a configuration example without any warning that credentials must remain secret. In a skill whose purpose is to send user prompts to an external LLM API, leaked credentials are especially dangerous because they can be reused immediately for unauthorized requests and cost generation.

Content

No source excerpt is available for this finding.

Credential Access

High
Category
Privilege Escalation
Confidence
60% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

Scanner excerpt · README.md (reported line 275)May include surrounding context.

Windows:

text
C:\Users\Administrator\.openclaw\.env

内容示例:

Tp2

High
Category
MCP Tool Poisoning
Confidence
85% confidence
Finding

Mixing characters from multiple Unicode scripts in a single identifier is a common technique to create visually ambiguous tool names.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
81% confidence
Finding

Natural-language policy violations include forcing a specific language without user opt-in. This file presents all usage instructions in Chinese with no indication of alternate language support or that the language constraint is intentional and documented as region-specific.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% 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 259)May include surrounding context.

bash
# MiniMax API 配置(必填)
OPENSPACE_MODEL=minimax/MiniMax-M2.7
OPENSPACE_API_BASE=https://api.minimax.chat/v1
OPENSPACE_API_KEY=sk-cp-MaMBLuaFp3MYYpki0XWxiT7iTrQ9Qz-uTadEpqmsPXO5YMlTvZv4MOAIOiN-DUl42IRXdBH4TBGMsSWitHMIVHTz8RMlADIC8l__MNgvznaxUBhz3AYckoI

# 代理配置(可选)

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% 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 282)May include surrounding context.

bash
# MiniMax API 配置(必填)
OPENSPACE_MODEL=minimax/MiniMax-M2.7
OPENSPACE_API_BASE=https://api.minimax.chat/v1
OPENSPACE_API_KEY=sk-cp-MaMBLuaFp3MYYpki0XWxiT7iTrQ9Qz-uTadEpqmsPXO5YMlTvZv4MOAIOiN-DUl42IRXdBH4TBGMsSWitHMIVHTz8RMlADIC8l__MNgvznaxUBhz3AYckoI

# 代理配置(可选)

Skill Enumeration

Medium
Category
Agent Snooping
Confidence
80% confidence
Finding

Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.

Content

Scanner excerpt · README.md (reported line 395)May include surrounding context.

md
## 📖 更多信息

- [SKILL.md](skills/openspace-llm/SKILL.md) - 技能定义文档
- [OPENSPACE_COMPLETE_FIX.md](workspace/OPENSPACE_COMPLETE_FIX.md) - OpenSpace 修复总结
- [xiaowei_llm_guide.md](workspace/xiaowei_llm_guide.md) - 小巍 LLM 使用指南

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
91% confidence
Finding

The skill documents use of environment variables including API keys and proxy settings, but it does not declare any explicit tool scope such as permissions or allowed-tools. In an agent ecosystem, missing capability scoping weakens user awareness and policy enforcement around secret access and network-capable behavior, increasing the chance of unintended credential use or outbound requests.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The skill clearly instructs users to configure an API key and send prompts to the MiniMax API, but it does not warn that user prompts, generated content, and possibly sensitive text will be transmitted to a third-party service. This creates a data handling and privacy risk, especially if the skill is used on confidential inputs under the assumption processing is local.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
93% confidence
Finding

This skill is explicitly designed to send prompts to an external API endpoint, which is expected functionality, but it still represents external transmission of potentially sensitive user data and use of a credentialed third-party service. The risk is elevated by accompanying proxy support, which can route traffic through additional infrastructure and may expose data if users do not understand the path their requests take.

Content

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

bash
# MiniMax API 配置
OPENSPACE_MODEL=minimax/MiniMax-M2.7
OPENSPACE_API_BASE=https://api.minimax.chat/v1
OPENSPACE_API_KEY=你的MiniMax_API_Key

# 代理配置(可选,默认使用系统代理)

External Transmission

Medium
Category
Data Exfiltration
Confidence
90% confidence
Finding

The configuration table reiterates that the skill uses a third-party API endpoint and proxy settings, confirming recurring outbound transmission behavior. While not inherently malicious, this is a real security concern when combined with absent privacy warnings and broad environment-based configuration, because users may unknowingly route sensitive prompts off-platform.

Content

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

md
| 环境变量 | 默认值 | 说明 |
|---------|--------|------|
| OPENSPACE_MODEL | minimax/MiniMax-M2.7 | 模型名称 |
| OPENSPACE_API_BASE | https://api.minimax.chat/v1 | API 地址 |
| OPENSPACE_API_KEY | (必填) | MiniMax API Key |
| HTTP_PROXY | http://127.0.0.1:10810 | HTTP 代理 |
| HTTPS_PROXY | http://127.0.0.1:10810 | HTTPS 代理 |

External Transmission

Medium
Category
Data Exfiltration
Confidence
91% confidence
Finding

The skill is explicitly configured to transmit prompts to an external API endpoint at api.minimax.chat. In the context of an LLM integration this is expected behavior, but it remains a real data egress risk because any user input, including secrets or sensitive text, may leave the local environment and be processed by a third party.

Content

Scanner excerpt · openspace_llm.py (reported line 38)May include surrounding context.

python
# 从环境变量读取配置
DEFAULT_MODEL = os.environ.get("OPENSPACE_MODEL", "minimax/MiniMax-M2.7")
DEFAULT_API_BASE = os.environ.get("OPENSPACE_API_BASE", "https://api.minimax.chat/v1")
DEFAULT_API_KEY = os.environ.get("OPENSPACE_API_KEY", "")
DEFAULT_PROXY = os.environ.get("HTTP_PROXY", "http://127.0.0.1:10810")
DEFAULT_TIMEOUT = int(os.environ.get("OPENSPACE_TIMEOUT", "300"))  # 5 分钟

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill sends user-supplied prompts and text to a third-party LLM service without any explicit privacy notice, consent flow, or data-handling warning. Users may provide sensitive content believing analysis is local, causing unintended disclosure of proprietary, personal, or regulated data to an external provider.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
88% confidence
Finding

The skill's natural-language interface, help text, and generated prompts are written in Chinese, which effectively forces a specific language/locale without user opt-in. The file does not indicate that the skill is intentionally region-specific or provide a mechanism for users to select another language.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Low
Category
Not specified by scanner
Confidence
76% confidence
Finding

The manifest describes an AI skill for calling OpenSpace/MiniMax models, auto-agent support, and long-text generation. While network use is expected, explicitly consuming and mutating host environment configuration for API keys and proxy routing introduces a host-integration capability not stated in the manifest and not obviously required to the user-facing purpose description.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Low
Category
Not specified by scanner
Confidence
72% confidence
Finding

The test routine prints model, API base, proxy, and timeout values to stdout. The manifest focuses on LLM invocation and content-generation capabilities; exposing internal connectivity configuration is an auxiliary diagnostic capability that is not justified by the stated user-facing purpose.

Content

No source excerpt is available for this finding.