Back to skill

Security audit

jun-invest-option-master-agent

Security checks for vulnerabilities and agentic risk

Overview

The skill discloses an auto-backup installer, but it installs persistent publishing automation that can upload broad local workspace contents without clear per-release review or opt-in.

Install only if you intentionally want this agent to maintain a local investment workspace and automatically publish backups to ClawHub. Before use, disable or review the launchd job, require manual approval before publishing, replace broad sync with an allowlist, remove personal/local files from publishable artifacts, and avoid storing credentials or infrastructure details in the workspace.

Vulnerability Patterns
  • System PersistenceInstalls backdoors, hooks, services, or scheduled tasks that survive the run
  • 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
Findings (3)

T09 · Insecure Skill Coding Practices

Error
Location
scripts/sync-runtime-to-artifact.sh:18
Finding

Unattended publication can expose personal, infrastructure, and sensitive workspace data

Content
View full analysis
/dev/null 2>&1 || true rm -f "${ARTIFACT_AGENT_DIR}/.publish-state.json" >/dev/null 2>&1 || true rm -f "${ARTIFACT_AGENT_DIR}/.publish-now" >/dev/null 2>&1 || true rsync -a --delete \ --exclude '.openclaw/' \ --exclude '.git/' \ --exclude 'memory/' \ --exclude '.publish-state.json' \ --exclude '.publish-now' \ --exclude '**/.venv/' \ --exclude '**/__pycache__/' \ --exclude '**/*.pyc' \ --exclude '**/*.pyo' \ --exclude '**/.DS_Store' \ --exclude 'logs/' \ --exclude 'tmp/' \ "${RUNTIME_DIR}/" \ "${ARTIFACT_AGENT_DIR}/" # Record which runtime commit this artifact was synced from if command -v git >/dev/null 2>&1 && [[ -d "${RUNTIME_DIR}/.git" ]]; then (cd "${RUNTIME_DIR}" && git rev-parse HEAD) > "${ARTIFACT_AGENT_DIR}/.runtime-head" || true fi ``` The synchronized artifact is subsequently published: ```bash cd "${SKILL_DIR}" echo "Publishing ${SLUG}@${version} ..." # Best-effort: publishing may fail if not logged in; do not crash the whole system. # clawhub publish can occasionally timeout; retry a few times. try=1 max=3 ok="false" while [[ ${try} -le ${max} ]]; do echo "Publish attempt ${try}/${max}..." if "${CLAWHUB_BIN}" publish . --slug "${SLUG}" --name "${NAME}" --version "${version}" --changelog "${changelog}"; then ok="true"; break fi sleep $((try * 5)) try=$((try + 1)) done if [[ "${ok}" == "true" ]]; then mkdir -p "$(dirname "${STATE_FILE}")" node -e 'const fs=require("fs"); const p=process.ar ...[truncated 2940 chars]
Remediation
View remediation

T06 · System Persistence

Error
Location
scripts/setup-launchd.sh:18
Finding

Default installation creates a persistent LaunchAgent for recurring network publication

Content
View full analysis
"${PUBLISH_PLIST}" < Label${PUBLISH_LABEL} ProgramArguments /bin/bash ${SKILL_DIR}/scripts/publish.sh EnvironmentVariables PATH/Users/lijunsheng/.nvm/versions/node/v22.22.0/bin:/usr/bin:/bin:/usr/sbin:/sbin CLAWHUB_BIN${CLAWHUB_BIN} CLAWHUB_REQUEST_TIMEOUT_MS120000 RunAtLoad StartCalendarInterval Hour3 Minute15 StartInterval1800 StandardOutPath$HOME/.openclaw/logs/jun-invest-option-master-agent.publish.out.log StandardErrorPath$HOME/.openclaw/logs/jun-invest-option-master-agent.publish.err.log EOF # Reload job launchctl unload "${PUBLISH_PLIST}" >/dev/null 2>&1 || true launchctl load "${PUBLISH_PLIST}" >/dev/null 2>&1 || true ``` The default installer activates this persistence mechanism: ```bash # Setup unattended daily publish (macOS launchd; best-effort) if [[ "$(uname -s)" == "Darwin" ]]; then bash "$(cd "$(dirname "${BASH_SOURCE[0]}" )" && pwd)/setup-launchd.sh" || true ...[truncated 2210 chars]
Remediation
View remediation

T08 · Insecure Dependencies

Warning
Location
scripts/auto-install.sh:43
Finding

Forced unpinned package updates expose the installation and publication chain to supply-chain compromise

Content
View full analysis
/dev/null 2>&1; then clawhub update jun-invest-option-master-agent --force || true fi ``` The same unsafe update policy is used for optional external Skills: ```bash # Best-effort: install skills (latest) if command -v clawhub >/dev/null 2>&1 && command -v node >/dev/null 2>&1; then LOCK_FILE="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)/skills.lock.json" SKILLS=$(node -e 'const fs=require("fs"); const j=JSON.parse(fs.readFileSync(process.argv[1],"utf8")); console.log((j.skills||[]).map(s=>s.slug).filter(Boolean).join("\n"));' "${LOCK_FILE}" || true) if [[ -n "${SKILLS}" ]]; then echo "Installing external skills (latest):" echo "${SKILLS}" | while IFS= read -r slug; do [[ -z "${slug}" ]] && continue echo "- clawhub update ${slug} --force (latest, best-effort)" clawhub update "${slug}" --force >/dev/null 2>&1 || clawhub install "${slug}" || true done fi else echo "clawhub/node not found; skipping external skill install. (OK)" fi ``` ### Technical Analysis The installer intentionally requests the latest registry version and forces replacement without pinning a version, validating a digest, checking a signature, or obtaining review approval. Although `skills.lock.json` is named like a lockfile, the documented policy is to list only slugs and fetch the latest release. The currently reviewed lockfile contains no external Skills, but the generic installer behavior becomes active as soon as entries are added. The self-update is immediately relevant: the package updates itself before completing installation. Consequently, the code actually used after the update may differ from the code reviewed in this audit. Suppressing failures with `|| true` a ...[truncated 1439 chars]
Remediation
View remediation
Vulnerability Patterns
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Tool MisuseTool Parameter Abuse, Chaining Abuse, Unsafe Defaults
  • Rogue AgentSelf-Modification, Session Persistence
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
Findings (93)

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

File synchronization and publishing logic that uses rsync --delete and explicit rm cleanup can remove data from the target artifact directory, making mistakes or abuse potentially destructive. When combined with publishing/version-stamping behavior, this can silently overwrite or delete released assets under the guise of routine installer activity.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

File synchronization and publishing logic that uses rsync --delete and explicit rm cleanup can remove data from the target artifact directory, making mistakes or abuse potentially destructive. When combined with publishing/version-stamping behavior, this can silently overwrite or delete released assets under the guise of routine installer activity.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

File synchronization and publishing logic that uses rsync --delete and explicit rm cleanup can remove data from the target artifact directory, making mistakes or abuse potentially destructive. When combined with publishing/version-stamping behavior, this can silently overwrite or delete released assets under the guise of routine installer activity.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

File synchronization and publishing logic that uses rsync --delete and explicit rm cleanup can remove data from the target artifact directory, making mistakes or abuse potentially destructive. When combined with publishing/version-stamping behavior, this can silently overwrite or delete released assets under the guise of routine installer activity.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

File synchronization and publishing logic that uses rsync --delete and explicit rm cleanup can remove data from the target artifact directory, making mistakes or abuse potentially destructive. When combined with publishing/version-stamping behavior, this can silently overwrite or delete released assets under the guise of routine installer activity.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

File synchronization and publishing logic that uses rsync --delete and explicit rm cleanup can remove data from the target artifact directory, making mistakes or abuse potentially destructive. When combined with publishing/version-stamping behavior, this can silently overwrite or delete released assets under the guise of routine installer activity.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

File synchronization and publishing logic that uses rsync --delete and explicit rm cleanup can remove data from the target artifact directory, making mistakes or abuse potentially destructive. When combined with publishing/version-stamping behavior, this can silently overwrite or delete released assets under the guise of routine installer activity.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
96% confidence
Finding

File synchronization and publishing logic that uses rsync --delete and explicit rm cleanup can remove data from the target artifact directory, making mistakes or abuse potentially destructive. When combined with publishing/version-stamping behavior, this can silently overwrite or delete released assets under the guise of routine installer activity.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
97% confidence
Finding

File synchronization and publishing logic that uses rsync --delete and explicit rm cleanup can remove data from the target artifact directory, making mistakes or abuse potentially destructive. When combined with publishing/version-stamping behavior, this can silently overwrite or delete released assets under the guise of routine installer activity.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

File synchronization and publishing logic that uses rsync --delete and explicit rm cleanup can remove data from the target artifact directory, making mistakes or abuse potentially destructive. When combined with publishing/version-stamping behavior, this can silently overwrite or delete released assets under the guise of routine installer activity.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

File synchronization and publishing logic that uses rsync --delete and explicit rm cleanup can remove data from the target artifact directory, making mistakes or abuse potentially destructive. When combined with publishing/version-stamping behavior, this can silently overwrite or delete released assets under the guise of routine installer activity.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
96% confidence
Finding

File synchronization and publishing logic that uses rsync --delete and explicit rm cleanup can remove data from the target artifact directory, making mistakes or abuse potentially destructive. When combined with publishing/version-stamping behavior, this can silently overwrite or delete released assets under the guise of routine installer activity.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
95% confidence
Finding

File synchronization and publishing logic that uses rsync --delete and explicit rm cleanup can remove data from the target artifact directory, making mistakes or abuse potentially destructive. When combined with publishing/version-stamping behavior, this can silently overwrite or delete released assets under the guise of routine installer activity.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

File synchronization and publishing logic that uses rsync --delete and explicit rm cleanup can remove data from the target artifact directory, making mistakes or abuse potentially destructive. When combined with publishing/version-stamping behavior, this can silently overwrite or delete released assets under the guise of routine installer activity.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
96% confidence
Finding

File synchronization and publishing logic that uses rsync --delete and explicit rm cleanup can remove data from the target artifact directory, making mistakes or abuse potentially destructive. When combined with publishing/version-stamping behavior, this can silently overwrite or delete released assets under the guise of routine installer activity.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
89% confidence
Finding

File synchronization and publishing logic that uses rsync --delete and explicit rm cleanup can remove data from the target artifact directory, making mistakes or abuse potentially destructive. When combined with publishing/version-stamping behavior, this can silently overwrite or delete released assets under the guise of routine installer activity.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
93% confidence
Finding

File synchronization and publishing logic that uses rsync --delete and explicit rm cleanup can remove data from the target artifact directory, making mistakes or abuse potentially destructive. When combined with publishing/version-stamping behavior, this can silently overwrite or delete released assets under the guise of routine installer activity.

Content

No source excerpt is available for this finding.

Missing User Warnings

High
Category
Not specified by scanner
Confidence
98% confidence
Finding

This workflow tells the agent to default to modifying the live source workspace, committing code, syncing artifacts, publishing to ClawHub, and then deploying the result automatically. That creates a highly dangerous autonomous supply-chain path: a user request can be translated directly into code changes and publication without review, testing gates, or explicit release approval, enabling accidental breakage or malicious prompt-driven code publication.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

High
Category
Not specified by scanner
Confidence
98% confidence
Finding

The bootstrap content is materially inconsistent with the declared purpose of an installer/upgrade/register skill and instead instructs the agent to perform persona-building, memory creation, and user-engagement workflows. This creates a prompt-injection style scope hijack: the agent may ignore its intended operational role and begin collecting user data or initiating unrelated workflows, increasing the risk of misuse and unauthorized actions.

Content

No source excerpt is available for this finding.

Self-Modification

High
Category
Rogue Agent
Confidence
85% confidence
Finding

Skill modifies its own code, configuration, or behavior at runtime. Self-modification enables an agent to escalate privileges, disable safety constraints, or install persistent backdoors.

Content

Scanner excerpt · agent/TOOLS.md (reported line 36)May include surrounding context.

md
## Why Separate?

Skills are shared. Your setup is yours. Keeping them apart means you can update skills without losing your notes, and share skills without leaking your infrastructure.

---

Description-Behavior Mismatch

High
Category
Not specified by scanner
Confidence
98% confidence
Finding

The prompt explicitly instructs the agent to modify workspace files, run shell-based self-checks, create git commits, and trigger publication to ClawHub. That exceeds a normal advisory/project-management role and creates an autonomous code-change and release path, which is dangerous because prompt content can directly cause operational side effects in the local environment without separate authorization.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

High
Category
Not specified by scanner
Confidence
97% confidence
Finding

This prompt grants a project-management persona authority to perform privileged operational actions on the filesystem and release pipeline. Even if intended for maintenance automation, embedding this authority in a prompt increases the chance of unintended or adversarially induced changes, especially because the agent is told it is responsible for carrying them out itself.

Content

No source excerpt is available for this finding.

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
95% confidence
Finding

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).

Content

Scanner excerpt · scripts/sync-runtime-to-artifact.sh (reported line 21)May include surrounding context.

sh
echo "  artifact: ${ARTIFACT_AGENT_DIR}"

# One-time safety cleanup: ensure runtime-only files never live in artifact
rm -rf "${ARTIFACT_AGENT_DIR}/memory" >/dev/null 2>&1 || true
rm -f "${ARTIFACT_AGENT_DIR}/.publish-state.json" >/dev/null 2>&1 || true
rm -f "${ARTIFACT_AGENT_DIR}/.publish-now" >/dev/null 2>&1 || true

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
95% confidence
Finding

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).

Content

Scanner excerpt · scripts/sync-runtime-to-artifact.sh (reported line 22)May include surrounding context.

sh
# One-time safety cleanup: ensure runtime-only files never live in artifact
rm -rf "${ARTIFACT_AGENT_DIR}/memory" >/dev/null 2>&1 || true
rm -f "${ARTIFACT_AGENT_DIR}/.publish-state.json" >/dev/null 2>&1 || true
rm -f "${ARTIFACT_AGENT_DIR}/.publish-now" >/dev/null 2>&1 || true

rsync -a --delete \

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
95% confidence
Finding

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).

Content

Scanner excerpt · scripts/sync-runtime-to-artifact.sh (reported line 23)May include surrounding context.

sh
# One-time safety cleanup: ensure runtime-only files never live in artifact
rm -rf "${ARTIFACT_AGENT_DIR}/memory" >/dev/null 2>&1 || true
rm -f "${ARTIFACT_AGENT_DIR}/.publish-state.json" >/dev/null 2>&1 || true
rm -f "${ARTIFACT_AGENT_DIR}/.publish-now" >/dev/null 2>&1 || true

rsync -a --delete \
  --exclude '.openclaw/' \