T03 · Remote Payload Retrieval and Execution
- Location
SETUP.md:44- Finding
Unverified Remote Installer Is Executed Directly by a Shell
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill’s IELTS planning purpose is mostly coherent, but its setup and runtime instructions expose users to high-impact install, credential, calendar, and background automation risks that need review before use.
Install only after choosing safer setup paths: avoid the curl-to-bash installer unless you have independently verified it, prefer isolated or pinned dependency installation, restrict Google Calendar and bot permissions, protect config files containing tokens, and disable Discord/Telegram or cron jobs unless you actually need automated reminders and reports.
SETUP.md:44Unverified Remote Installer Is Executed Directly by a Shell
SETUP.md:194Third-Party Python Dependency Is Installed Without Version or Integrity Pinning
SETUP.md:149API Keys and Bot Tokens Are Stored in Plaintext Configuration Files
SKILL.md:235Generated Values Are Interpolated into Shell-Executed SQL Without Parameter Binding
Piping a remote script directly into bash executes unverified code from the network with no integrity pinning, review step, or signature verification. If the hosting domain, transport, or delivered script is compromised, users can be induced to run arbitrary commands on their system during installation.
curl -fsSL https://get.openclaw.dev | bash
The shell pipeline from curl to bash is a classic chaining pattern that removes the opportunity to inspect downloaded content and directly hands network data to a command interpreter. In a setup guide, this is especially dangerous because it normalizes executing arbitrary remote content during installation.
curl -fsSL https://get.openclaw.dev | bash
The quick-start section repeats the same unsafe remote-script execution pattern, increasing the likelihood that users will follow the most dangerous path. Because quick-start blocks are often copied blindly, this materially raises exploitation risk.
# 1. Install OpenClaw
curl -fsSL https://get.openclaw.dev | bash
# 2. Run setup wizard (configures API key + model)
openclaw config
The repeated curl-to-bash chain in the quick-start section compounds risk because users are most likely to copy that concise command without review. Any compromise of the source or path would immediately yield code execution on the host.
# 1. Install OpenClaw
curl -fsSL https://get.openclaw.dev | bash
# 2. Run setup wizard (configures API key + model)
openclaw config
Fetching and executing a remote installer script from the network is a classic supply-chain risk because any compromise of the hosting domain, transport, or script content results in arbitrary code execution. This is especially dangerous here because later steps configure tokens, OAuth credentials, and a persistent gateway that could all be subverted.
curl -fsSL https://get.openclaw.dev | bash
Chaining curl output directly into bash combines network retrieval and execution in a single step, eliminating inspection barriers and making arbitrary command execution immediate. In setup docs, this pattern is dangerous because users are primed to trust and run it verbatim.
curl -fsSL https://get.openclaw.dev | bash
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
gcalcli --client-id /đường/dẫn/client_secret.json list
Trình duyệt sẽ mở ra để xác thực. Đăng nhập Google và cho phép.
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
gcalcli --client-id /đường/dẫn/client_secret.json list
Trình duyệt sẽ mở ra để xác thực. Đăng nhập Google và cho phép.
Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).
Cách sửa:
rm -f ~/.gcalcli_oauth
gcalcli list # Xác thực lại
Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).
Cách sửa:
rm -f ~/.gcalcli_oauth
gcalcli list # Xác thực lại
The quick-start repeats the same unsafe remote script execution pattern, increasing the likelihood users will follow the shortest path without scrutiny. Repetition in a summary section amplifies the practical exploitation risk of a compromised installer endpoint.
# 1. Cài OpenClaw
curl -fsSL https://get.openclaw.dev | bash
# 2. Chạy setup wizard (cấu hình API key + model)
openclaw config
The same chaining pattern is repeated in the quick-start, where users are most likely to copy-paste commands without reading caveats. This meaningfully raises exploitability if the remote installer is altered or intercepted.
# 1. Cài OpenClaw
curl -fsSL https://get.openclaw.dev | bash
# 2. Chạy setup wizard (cấu hình API key + model)
openclaw config
The skill is permitted to create and edit files in the workspace, including the study plan and database, which introduces persistent state changes. If invoked unexpectedly or supplied bad inputs, it can overwrite planning artifacts or corrupt tracking data, and the persistence makes mistakes durable across sessions.
1. **Delete Calendar events NOT tracked in the SQLite database** → NEVER delete events that EduClaw did not create. Only events with a matching event_id in `workspace/tracker/educlaw.db` sessions table may be deleted, and ONLY after user confirmation.
2. **Auto-select time slots** → MUST ask user first (Step 0).
3. **Place events outside chosen window** → ASK if blocked, don't auto-move.
4. **Delete files/emails** → Only CREATE and EDIT your own files.
5. **Retry on API errors** → STOP, report, suggest checks.
6. **Skip approval step** → Must have user consent before Calendar events.
7. **Create >14 events at once** → Batch by 2 weeks, ask to continue.
Skill contains instructions that could directly expose system prompts, internal rules, or hidden instructions to users or external parties.
---
## Channel-Specific Output Rules
### Discord Output
- **Message limit:** 2000 characters max per message. Split if longer.
Skill contains instructions that could directly expose system prompts, internal rules, or hidden instructions to users or external parties.
---
## Channel-Specific Output Rules
### Discord Output
- **Message limit:** 2000 characters max per message. Split if longer.
The line describes 'Bilingual support (English & Vietnamese) with automatic language detection'. Under the policy rule, forcing or automatically selecting a language/locale without explicit user opt-in can be a natural-language policy concern, because it does not state that users can choose their preferred language.
The README advertises web search and Discord-based automation for study planning and progress reporting, but it does not warn users that study schedules, calendar metadata, or progress details may be transmitted to third-party services. This creates a real privacy and data-handling risk because users may enable these integrations without understanding what personal data leaves the local environment.
The setup guide expands the skill’s effective capabilities beyond IELTS planning by enabling Discord and Telegram bot channels, which create externally reachable interfaces for the agent. Even if not inherently malicious, adding network-facing messaging channels increases attack surface, privacy risk, and the chance the skill is used in contexts not clearly disclosed by the manifest.
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.
This runs the setup wizard. It will:
- Create `~/.openclaw/` directory
- Prompt for model provider and API key
- Set up basic config
The instructions tell users to place API credentials and bot tokens directly into configuration files without prominent secret-handling guidance. This creates a realistic risk of accidental disclosure through shell history, backups, screenshots, misconfigured file permissions, or committing secrets to source control.
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.
# Make sure the directory exists
mkdir -p ~/.openclaw/workspace/tracker
# Re-create the database
sqlite3 ~/.openclaw/workspace/tracker/educlaw.db \
< ~/.openclaw/skills/educlaw-ielts-planner-1.0.0/schema.sql
The setup guide materially expands the skill’s operational scope beyond IELTS planning by adding always-on Discord and Telegram channel integrations. This broadens the attack and privacy surface by enabling inbound messaging, remote control paths, and exposure of user content without that capability being clearly justified by the core workflow.
Piping a remote script directly into bash executes unreviewed code with the user’s privileges and removes the opportunity to inspect integrity or provenance first. In setup documentation, especially for a skill that later handles API keys and calendar access, this creates a strong supply-chain compromise path.
The guide requests Google Calendar read/write OAuth scope without explicitly warning users that the skill will gain access to calendar contents and be able to create or modify events. For a planning assistant this may be functionally relevant, but the missing consent and data-handling notice increases privacy and misuse risk.
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.
### 3.1. Lấy Gemini API Key (cho AI model)
1. Truy cập [Google AI Studio](https://aistudio.google.com/apikey)
2. Nhấn **"Create API Key"**
3. Chọn hoặc tạo Google Cloud project
4. Copy API key (bắt đầu bằng `AIzaSy...`)
5. **Quan trọng:** Kiểm tra [billing/quota](https://console.cloud.google.com/apis/api/generativelanguage.googleapis.com/quotas) — free tier có giới hạn. Tăng spending cap nếu cần.
No suspicious patterns detected.