Back to skill

Security audit

Repo Onboarding

Security checks for vulnerabilities and agentic risk

Overview

The skill has a coherent repo-onboarding purpose, but it asks agents to run unreviewed local scripts and optionally install a persistent daily cron task without enough user control or disclosure.

Review this carefully before installing. Only run the setup scripts if you trust the exact local files at the referenced paths, understand what repository files they will change, and explicitly want a cron job that keeps running later. Prefer a version that bundles reviewed package-relative scripts, shows proposed changes, and documents how to remove any scheduled task.

Vulnerability Patterns
  • System PersistenceInstalls backdoors, hooks, services, or scheduled tasks that survive the run
  • Tool Hijacking and SpoofingModifies or replaces tools so legitimate-looking calls execute attacker logic
  • 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)

T06 · System Persistence

Error
Location
SKILL.md:45
Finding
Optional Installation of a Persistent Scheduled Task<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md`, lines 45–49 **Vulnerability Type**: Persistent cron task installation **Risk Level**: High ### Vulnerable Code ```bash Optional daily PM audit: ```bash bash /home/broedkrummen/.openclaw/workspace-cody/skills/repo-kanban-pm/scripts/add_daily_pm_cron.sh "$(pwd)" --agent cody --tz UTC --time 09:30 ``` ``` ### Technical Analysis The Skill instructs the agent to invoke a script explicitly intended to add a daily cron task. A cron entry persists beyond the current onboarding run and executes automatically in future sessions. The referenced script is outside the audited package, so its implementation and the exact scheduled command cannot be verified. The instructions also do not require explicit informed user approval, display the resulting cron entry, constrain what the scheduled process may execute, or provide a removal procedure. Although described as optional, executing this command establishes cross-session system state and creates an unattended execution path. ### Attack Path 1. An agent loads the Skill and follows the optional daily PM audit instruction. 2. The agent executes `add_daily_pm_cron.sh` under the current user's account. 3. The external script modifies the user's cron configuration. 4. The installed command runs automatically at the configured time after the onboarding operation has ended. 5. If the scheduled command or any script it references is subsequently modified or compromised, the modified logic executes during later scheduled runs without another onboarding action. ### Impact Assessment The scheduled process can execute with the permissions of the user who installed the cron entry. Depending on the external script's implementation, this may permit recurring access to repositories and other files available to that account, modification of user-owned data, command execution, and continued operation across sessions. The precise scope cannot be established because ne ...[truncated 93 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. Remove automatic cron installation from the standard onboarding workflow. 2. Require explicit, informed user confirmation immediately before making any persistent system change. 3. Display the complete proposed cron entry, including all commands, arguments, environment variables, and output destinations. 4. Bundle the installer in the reviewed Skill package rather than invoking a mutable script from an external user-specific path. 5. Pin the scheduled implementation to a reviewed immutable version and verify its integrity before installation. 6. Run the scheduled task with the minimum required permissions and limit its access to the intended repository. 7. Provide commands to inspect, disable, and completely remove the installed cron entry. 8. Verify after installation that no additional or unexpected scheduled entries were created. ]]>

T07 · Tool Hijacking and Spoofing

Error
Location
SKILL.md:22
Finding
Execution of Unverified Scripts Outside the Audited Skill Package<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md`, lines 22–31 and 40–49 **Vulnerability Type**: Unverified external local tool execution **Risk Level**: High ### Vulnerable Code ```bash # 1) architecture assessment python /home/broedkrummen/.openclaw/workspace-cody/skills/senior-architect/scripts/project_architect.py . --output json > docs/pm/architecture-assessment.json # 2) dependency analysis python /home/broedkrummen/.openclaw/workspace-cody/skills/senior-architect/scripts/dependency_analyzer.py . --output json > docs/pm/dependency-analysis.json # 3) architecture diagram (mermaid) python /home/broedkrummen/.openclaw/workspace-cody/skills/senior-architect/scripts/architecture_diagram_generator.py . --format mermaid -o docs/pm/architecture-diagram.md ``` ```bash bash /home/broedkrummen/.openclaw/workspace-cody/skills/repo-kanban-pm/scripts/init_repo_pm.sh "$(pwd)" ``` ```bash bash /home/broedkrummen/.openclaw/workspace-cody/skills/repo-kanban-pm/scripts/add_daily_pm_cron.sh "$(pwd)" --agent cody --tz UTC --time 09:30 ``` ### Technical Analysis The Skill delegates repository inspection, repository modification, and scheduled-task installation to Python and shell scripts located outside the audited package. These files were not present in the supplied project, so their contents and security properties could not be reviewed. The paths are absolute and user-specific but are not integrity-pinned. Replacing or modifying a referenced file changes the effective behavior of the Skill without requiring any update to `SKILL.md`. Invoking the files through Python or Bash grants them ordinary code-execution capabilities under the invoking user's identity. This creates a local trust-boundary weakness: legitimate-looking onboarding commands can execute substituted or compromised logic from mutable external locations. ### Attack Path 1. An attacker, compromised process, or untrusted installation obtains write access to one of the referenced exter ...[truncated 1398 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. Include all required scripts within the audited Skill package. 2. Review those scripts together with `SKILL.md` and reference them using package-relative paths. 3. If external scripts are unavoidable, pin them to immutable reviewed versions and verify cryptographic hashes before execution. 4. Reject execution when ownership, permissions, path resolution, or integrity checks do not match expected values. 5. Avoid hard-coded, user-specific absolute paths. 6. Document each script's required file access, command execution, network access, and system modifications. 7. Separate read-only repository analysis from repository mutation and persistent system changes. 8. Require explicit approval before running scripts that modify repository files or system configuration. 9. Prefer direct, transparent commands for simple operations so users can inspect the complete behavior before execution. ]]>
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
Findings (1)

Missing User Warnings

Medium
Confidence
94% confidence
Finding
The skill instructs the agent to execute local shell scripts that modify the repository and optionally install a cron job, but it does not clearly warn the user that these are system-impacting operations. This is dangerous because onboarding appears routine and low-risk, yet it can persist changes outside normal repo edits, including scheduled execution on the host, which expands the blast radius if the scripts are unsafe or tampered with.

Static analysis

No suspicious patterns detected.