Back to skill

Security audit

Workflow Chain

Security checks for vulnerabilities and agentic risk

Overview

This skill is a coherent workflow orchestrator for financial pipeline scripts, but users should review the commands because it can run multiple scripts, write reports, and initiate QBO re-authentication.

Install only if you expect this skill to run local accounting pipelines against QBO-backed client data. Before using it, confirm the client slug, reporting period, output directory, scripts to run, and any QBO reconnect step; harden the shell examples by validating inputs and quoting variables.

Vulnerability Patterns
  • 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
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
Findings (1)

T09 · Insecure Skill Coding Practices

Warning
Location
SKILL.md:207
Finding

Unquoted Workflow Parameters in Shell Command Templates

Content
View full analysis
Remediation
View remediation
&2 exit 1 fi ``` 2. Validate dates as strict ISO values and reject malformed or option-like input. Where practical, parse them with a trusted date library rather than relying only on a regular expression. 3. Quote every variable expansion: ```bash readonly SCRIPTS="$HOME/.openclaw/workspace/scripts/pipelines" OUT="$HOME/Desktop/close-${SLUG}-$(date +%Y%m)" python3 "$SCRIPTS/bank-reconciliation.py" \ --slug "$SLUG" \ --start "$MONTH_START" \ --end "$MONTH_END" \ --out "$OUT" ``` 4. Resolve and validate the output directory against an approved base directory. Reject traversal components, unexpected symbolic links, and destinations outside that base. 5. Never construct commands through `eval`, `sh -c`, or direct textual interpolation of user input. Prefer a subprocess API with an argument array when implementing orchestration programmatically. 6. Use fixed script paths from the trusted manifest, verify that each resolved script remains under the expected pipeline directory, and do not permit a user-controlled script name. 7. Add `--` before positional values where supported by the downstream parser. Also reject values beginning with `-` when they are identifiers rather than options. 8. Apply safe shell defaults such as `set -euo pipefail` where compatible, while explicitly collecting background-process statuses so parallel pipeline failures remain visible. ]]>
Vulnerability Patterns
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Rogue AgentSelf-Modification, Session Persistence
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
Findings (5)

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The trigger phrases are broad enough that common user language like 'run everything' or 'full suite' could activate a multi-script workflow unintentionally. Because this skill orchestrates multiple pipelines and writes outputs, overbroad activation increases the risk of excessive action execution, especially in an autonomous agent context.

Content

No source excerpt is available for this finding.

Session Persistence

Medium
Category
Rogue Agent
Confidence
60% confidence
Finding

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.

Content

Scanner excerpt · SKILL.md (reported line 200)May include surrounding context.

md
- "Run the full monthly close and analysis package for Acme for March 2026."
- "Chain PL, BS, and SCF quick compare, then build the dashboard."
- "Create a reusable year-end tax workflow for this client."

## Execution Commands

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
87% confidence
Finding

The skill provides concrete execution commands for many scripts and notes that QBO authentication may be refreshed, but it does not prominently warn users that activating the workflow can launch multiple file-writing processes and potentially trigger auth-related actions. In an agent environment, missing safety disclosures reduce informed consent and make unintended operational impact more likely.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The skill includes an explicit credential-refresh command (node integrations/qbo-client/bin/qbo connect <slug>) that expands behavior beyond mere workflow orchestration into authentication state manipulation. In an agent setting, this can cause the agent to initiate re-auth flows or modify access state without an explicit, separate user approval boundary, increasing the chance of unintended privileged actions.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Low
Category
Not specified by scanner
Confidence
97% confidence
Finding

Earlier documentation states Layer 3 deep-analysis pipelines should run only when quick-compare steps flagged material items, but the provided execution commands invoke all three deep-analysis scripts without any conditional check. This is an active contradiction between the stated execution logic and the documented command sequence.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.