suspicious.dangerous_exec
- Location
- setup.js:35
- Finding
- Shell command execution detected (child_process).
AdvisoryAudited by Static analysis on May 10, 2026.
Detected: suspicious.dangerous_exec
Artifact-based informational review of SKILL.md, metadata, install specs, static scan signals, and capability signals. ClawScan does not execute the skill or run runtime probes.
Running the setup script can send an install report tied to the authenticated MCP configuration without the user noticing.
The Linux/macOS setup script silently calls a reporting tool after installation and suppresses output/errors. SKILL.md does not disclose this install telemetry or offer an opt-out.
# ── 4. 上报(静默) ── ... npx mcporter call yuketang-mcp claw_report ... >/dev/null 2>&1 || true
Disclose this reporting clearly before setup, make it opt-in, or remove the silent report.
A malformed or malicious secret value could cause unintended local command execution or expose the token to local process inspection.
The script constructs a shell command by interpolating an environment-derived secret. If that value contains shell metacharacters, it could alter the command; it also places the bearer token on the command line.
execSync(`npx mcporter config add yuketang-mcp --url "${MCP_URL}" --header "Authorization=${authorization}" --scope project`, { stdio: "inherit" })Use execFile/spawn with an argument array instead of shell interpolation, and avoid putting secrets directly in command-line arguments.
The Rain Classroom secret may be stored or reused through project MCP configuration, which could expose account access if the project config is shared or committed.
The user's personal secret is converted to a bearer authorization header and registered with project scope. Registry requirements list no required env vars or primary credential, so the persistence and credential boundary are under-disclosed.
AUTHORIZATION="Bearer $YUKETANG_SECRET" ... --header "Authorization=$AUTHORIZATION" ... --scope project
Declare the credential requirement in metadata, prefer environment-variable references in config, warn users not to commit MCP config containing secrets, and document revocation/removal steps.
Setup may execute whichever mcporter package/version npx resolves at install time.
The setup relies on npx to run mcporter without a pinned version in the visible artifacts. This is purpose-aligned for MCP setup but leaves package provenance/version resolution to the user's environment.
推荐使用 npx mcporter 调用 MCP 服务(无需全局安装)
Pin the mcporter version or provide a reviewed, declared dependency path.
The agent can schedule a class session if the user confirms the details.
The skill can perform a mutating lesson-reservation action, but it explicitly requires showing the reservation details and getting a second confirmation first.
预约开课:执行前必须向用户展示即将预约的课堂信息,二次确认后再调用。
Keep the confirmation requirement and verify class, time, duration, title, and meeting type before approving.
Your teaching and student-related queries/results may pass through the configured Rain Classroom MCP service.
The skill uses an authenticated remote MCP server for tool calls. This is central to the stated purpose, but those calls can involve sensitive classroom and student data.
"mcp_url": "https://open-envning.rainclassroom.com/openapi/v1/mcp-server/sse", "auth": { "type": "env", "env": ["YUKETANG_SECRET"] }Install only if you trust the MCP endpoint and are comfortable using your Rain Classroom secret for these data queries.