T09 · Insecure Skill Coding Practices
- Location
config.yaml:27- Finding
API Credentials and Research Content Sent to a Non-Official Endpoint
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill has a coherent research-assistant purpose, but it needs Review because it can send credentials and research content to a non-official LLM endpoint, persist sensitive research data indefinitely, and run unsafe SSH automation.
Install only after reviewing the code and configuring a trusted LLM endpoint yourself. Do not reuse an official OpenAI API key with the default api.openai-hk.com endpoint unless you explicitly trust that operator. Avoid using the SSH monitoring features on sensitive servers until host-key checking, command validation, and path handling are fixed. Treat the memory files as long-lived local records of your research, profile, server details, and notes, and clear them manually if needed.
config.yaml:27API Credentials and Research Content Sent to a Non-Official Endpoint
README.md:40Mutable Personal Repository Is Cloned and Immediately Executed
SKILL.md:10Session-Wide Agent Identity and Behavior Hijacking
scripts/server_monitor.py:120Remote Command Injection in SSH and Experiment Monitoring Operations
scripts/server_monitor.py:42SSH Host Authentication Is Explicitly Disabled
scripts/session_memory.py:17Project Identifier Traversal Allows Writes Outside the Memory Directory
install.sh:23Automatic Installation of Unpinned Python Dependencies
The global critical rule says to confirm before running any pipeline step in Semi-Manual mode, but the documented semi-auto flow also instructs the agent to run multiple technical steps silently in AUTO ZONE. That conflict can cause an agent to choose the less restrictive interpretation and execute network, file, or processing actions without the level of user approval the policy appears to require.
The docstring claims the research mode writes from real experimental data, but the implementation generates core scientific sections from an LLM using sparse notes and ideas and even inserts placeholder figures/tables when no data exists. In an academic-paper-writing context, this is dangerous because it can mislead users into producing fabricated or unsupported research artifacts that appear legitimate.
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
("host", "Server hostname or IP (e.g. 10.26.xx.xx or login.hpc.edu):"),
("user", "Username:"),
("port", "SSH port (default 22):"),
("ssh_key", "SSH key path (e.g. ~/.ssh/id_rsa, or Enter for password):"),
("workdir", "Remote working directory (e.g. /home/user/research):"),
("scheduler","Job scheduler (slurm / pbs / none):"),
]
The code records user-supplied values into the persistent sessions log by embedding up to 80 characters of value in the action field. If users store secrets, API keys, personal data, or sensitive research content, those values will be duplicated into long-lived memory files and later displayed in summaries, increasing unintended disclosure risk. In this skill context, persistent cross-session research memory makes retention and resurfacing of sensitive content more dangerous than a transient log.
data[key] = []
data[key].append({"timestamp": timestamp, "content": value})
# Log session event
data["sessions"].append({
"timestamp": timestamp,
"action": f"Added {key}: {str(value)[:80]}"
The README promotes server monitoring with SSH access and job inspection without warning that the skill may access remote systems, logs, GPU status, and experiment artifacts. In this context, users may unknowingly grant the agent visibility into sensitive infrastructure and research data, increasing the risk of credential misuse or unintended disclosure.
The README advertises persistent session memory across sessions and weeks but provides no warning about what research data is retained, how long it is stored, or how users can clear it. In a research assistant context, retained prompts, notes, unpublished ideas, and potentially sensitive project details can accumulate and later be exposed or misused if storage is insecure or shared.
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.
git clone https://github.com/amzayn/eve-research-supervisor-pro && cd eve-research-supervisor-pro && bash install.sh && mkdir -p ~/.openclaw/workspace/skills/eve-research-supervisor-pro && cp SKILL.md ~/.openclaw/workspace/skills/eve-research-supervisor-pro/SKILL.md && echo "✅ EVE installed!"
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.
git clone https://github.com/amzayn/eve-research-supervisor-pro && cd eve-research-supervisor-pro && bash install.sh && mkdir -p ~/.openclaw/workspace/skills/eve-research-supervisor-pro && cp SKILL.md ~/.openclaw/workspace/skills/eve-research-supervisor-pro/SKILL.md && echo "✅ EVE installed!"
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.
git clone https://github.com/amzayn/eve-research-supervisor-pro && cd eve-research-supervisor-pro && bash install.sh && mkdir -p ~/.openclaw/workspace/skills/eve-research-supervisor-pro && cp SKILL.md ~/.openclaw/workspace/skills/eve-research-supervisor-pro/SKILL.md && echo "✅ EVE installed!"
The README states that the tool uses a built-in API key automatically and separately documents use of a third-party API endpoint, but it does not warn that prompts, papers, notes, or research data may be transmitted externally. This creates a meaningful privacy and compliance risk, especially for unpublished or proprietary research content.
The README references an external API base URL, indicating that data handled by the skill may be transmitted to a third-party service. In a research-assistant context, uploaded prompts and document-derived content may include sensitive or unpublished material, so undisclosed external transmission is a real security and privacy concern.
For non-PetClaw:
export OPENAI_API_KEY=your_key
export OPENAI_BASE_URL=https://api.openai-hk.com/v1
Optional (citation graph visualization):
The instruction to read memory before every action and update it after every major step establishes broad persistent retention and reuse of user data across sessions. Without minimization or consent boundaries, this can accumulate sensitive research, personal, and system information beyond user expectations.
The skill collects profile data such as major, interests, goals, venue, and compute details, then persists it across sessions without a clear privacy notice, retention policy, or consent step. Users are told the data will be remembered 'forever,' which increases the chance of overcollection and unexpected long-term storage of personal or sensitive academic information.
Telling users their answers will be remembered forever signals indefinite retention without qualification, which is a privacy and data governance risk. It encourages storage of potentially identifying academic and system details without any retention limit or deletion mechanism.
The skill explicitly writes user profile data to a persistent JSON file in the workspace, creating cross-session retention of personal and research-related information. Without notice, retention limits, and deletion controls, this persistence can expose sensitive data to later sessions, other tools, or anyone with filesystem access.
python3 ~/.openclaw/workspace/research-supervisor-pro/scripts/session_memory.py save _profile compute ""
Also write to:
~/.openclaw/workspace/research-supervisor-pro/memory/user_profile.json
Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.
Trigger: user says "2" / "semi" / "semi-auto" / "guided"
Philosophy: EVE runs everything automatically — but pauses at 3 key decisions where only YOU can decide. No approvals for technical steps. Fast like Auto, smart like Manual.
AUTO ZONE → [search + download + parse + rank + graph] runs silently
The documentation says Semi-Auto 'pauses at 3 key decisions where only YOU can decide,' implying an approval gate at each decision point. But later steps explicitly say 'Then immediately continue' after Pause 1 and Pause 2, meaning the skill resumes execution automatically without a separate confirmation, which contradicts the stated interaction model.
The roadmap flow collects detailed environment and capability information including GPU, OS, installed tooling, dataset access, timeline, and coding level, then saves it to memory. That information can reveal system posture and operational constraints, making it sensitive if exposed or reused improperly.
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.
║ ideas for gap [N] For specific gap ║
║ ║
║ WRITING ║
║ write survey Full survey paper ║
║ write research paper With real data ║
║ write [section] One section only ║
║ generate figures From data file ║
The server monitoring feature includes remote status checks, log watching, file pulling, and job submission over SSH/SLURM, but it does not require prominent confirmation or explain the risks of remote execution and data transfer. In practice, this could lead to unintended commands on a GPU server or silent retrieval of sensitive experiment outputs from remote systems.
The skill instructs automatic use of built-in API credentials from a local settings file and fallback to environment credentials without a user-facing warning or consent for outbound requests. This creates a risk that the agent will access secrets and transmit user or research data to external services unexpectedly.
Using a nonstandard external API endpoint as the default causes model requests and associated context to be transmitted off-system to infrastructure not clearly identified as the official provider. In a skill that performs autonomous research with web access, memory, and execution tooling, those requests can include sensitive prompts, collected documents, and environment-derived metadata, increasing confidentiality and compliance risk.
llm:
default_model: gpt-4o
base_url: "${OPENAI_BASE_URL:-https://api.openai-hk.com/v1}"
api_key: "${OPENAI_API_KEY:-}"
author: Zain Ul Abdeen
The manifest defines a default LLM base URL pointing to a third-party Hong Kong–specific endpoint rather than the standard vendor API, with no user-facing justification, consent flow, or trust documentation. Because this skill also enables memory and an exec-capable research workflow, prompts, retrieved content, and possibly sensitive workspace-derived data may be transmitted to that endpoint unexpectedly.
The installer writes into the user's home workspace and installs Python packages via pip3 without any prior consent prompt, dry-run mode, or clear warning that it will modify the environment. While this is common installer behavior and not inherently malicious, it can unexpectedly alter the user's Python environment, introduce dependency conflicts, or make rollback difficult.
Commands invoke sudo or root privileges. Verify this elevated access is necessary and justified.
if ! command -v dot &>/dev/null; then
echo "ℹ️ Optional: install Graphviz to visualize citation graphs:"
echo " macOS: brew install graphviz"
echo " Linux: sudo apt install graphviz"
fi
echo ""
No suspicious patterns detected.