Back to skill

Security audit

Simplify Budget Expense Tracker

Security checks for vulnerabilities and agentic risk

Overview

The skill mostly matches a Google Sheets budget tracker, but it needs review because it can write financial data in unsafe or under-disclosed ways and includes an unrelated session-pruning utility.

Review before installing. Set SPREADSHEET_ID explicitly to your own copied sheet, ensure the service account can edit only that sheet, avoid accepting untrusted transaction text until formula handling is fixed, and remove or ignore the session-pruning script unless you intentionally want it to archive OpenClaw Telegram sessions.

Vulnerability Patterns
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
  • 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
Findings (3)

T09 · Insecure Skill Coding Practices

Error
Location
scripts/write_expense.sh:60
Finding

<![CDATA[Spreadsheet Formula Injection Through User-Controlled Transaction Fields]]>

Content
View full analysis
/dev/null ``` The same pattern is present in the income writer: ```bash BODY=$(jq -n \ --arg tid "$TRANSACTION_ID" \ --arg dt "$FORMATTED_DATE" \ --argjson amt "$AMOUNT" \ --arg name "$NAME" \ --arg acc "$ACCOUNT" \ --arg src "$SOURCE" \ --arg notes "$NOTES" \ '{"values": [[($tid), ($dt), ($amt), ($name), ($acc), ($src), ($notes)]]}') RESULT=$(curl -sf -X POST \ -H "Authorization: Bearer ${TOKEN}" \ -H "Content-Type: application/json" \ "https://sheets.googleapis.com/v4/spreadsheets/${SPREADSHEET_ID}/values/Income%21D5%3AJ:append?valueInputOption=USER_ENTERED&insertDataOption=OVERWRITE" \ -d "$BODY") ``` ### Technical Analysis The scripts insert user-controlled descriptions, names, accounts, notes, sources, and other free-text fields using Google Sheets' `USER_ENTERED` input mode. This mode parses values as if they were typed through the spreadsheet interface, including interpreting strings beginning with formula syntax as formulas. The category cell intentionally requires formula behavior because the template uses values such as `=zategory4`. However ...[truncated 2030 chars]
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Warning
Location
commands/exec.sh:17
Finding

<![CDATA[Financial Data May Be Routed to an Undeclared Hardcoded Spreadsheet]]>

Content
View full analysis
Remediation
View remediation
&2 exit 1 fi export SPREADSHEET_ID ``` 2. Validate that the value matches the expected Google spreadsheet ID character set before constructing request URLs. 3. Add a setup command that displays the selected spreadsheet ID and verifies the expected worksheet names without writing data. 4. Require explicit user confirmation before the first write to a newly configured spreadsheet. 5. Ensure documentation, Skill metadata, wrappers, and direct script execution enforce the same configuration requirements. 6. Add automated tests confirming that missing configuration fails closed and performs no network request. ]]>

T05 · Unauthorized Access and Privilege Escalation

Warning
Location
scripts/prune_budget_telegram_sessions.py:11
Finding

<![CDATA[Out-of-Scope OpenClaw Session Registry and Conversation File Mutation]]>

Content
View full analysis
dict: if not SESSIONS_FILE.exists(): return {} try: return json.loads(SESSIONS_FILE.read_text(encoding="utf-8")) except json.JSONDecodeError: return {} ``` ```python def session_line_count(session_file: Path) -> int: try: with session_file.open("r", encoding="utf-8") as handle: return sum(1 for _ in handle) except FileNotFoundError: return 0 ``` ```python targeted = { key: meta for key, meta in sessions.items() if key.startswith(KEY_PREFIX) and should_prune(meta) } if not targeted: return 0 archive_dir = SESSIONS_DIR / f"archive-budget-auto-{int(time.time())}" archive_dir.mkdir(parents=True, exist_ok=True) for key, meta in targeted.items(): session_path = Path(str(meta.get("sessionFile") or "")) if session_path.exists(): shutil.move(str(session_path), str(archive_dir / session_path.name)) sessions.pop(key, None) SESSIONS_FILE.write_text(json.dumps(sessions, indent=2) + "\n", encoding="utf-8") ``` ### Technical Analysis The declared Skill functionality is budget tracking through Google Sheets. This utility instead accesses OpenClaw's global session directory, reads Telegram session metadata, opens conversation files, moves those files, removes session registry entries, and rewrites `sessions.json`. No project reference was found that automatically invokes this script. This lowers immediate exposure and means the audit d ...[truncated 2334 chars]
Remediation
View remediation
Vulnerability Patterns
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • 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
Findings (90)

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

The skill documents creation of recurring schedule entries despite the description limiting recurring features to read-only answers. Hidden write access to recurring financial data can mislead users and reviewers about what actions the skill can take.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

The skill documents creation of recurring schedule entries despite the description limiting recurring features to read-only answers. Hidden write access to recurring financial data can mislead users and reviewers about what actions the skill can take.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

The skill documents creation of recurring schedule entries despite the description limiting recurring features to read-only answers. Hidden write access to recurring financial data can mislead users and reviewers about what actions the skill can take.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

The skill documents creation of recurring schedule entries despite the description limiting recurring features to read-only answers. Hidden write access to recurring financial data can mislead users and reviewers about what actions the skill can take.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

The skill documents creation of recurring schedule entries despite the description limiting recurring features to read-only answers. Hidden write access to recurring financial data can mislead users and reviewers about what actions the skill can take.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
96% confidence
Finding

The skill documents creation of recurring schedule entries despite the description limiting recurring features to read-only answers. Hidden write access to recurring financial data can mislead users and reviewers about what actions the skill can take.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
95% confidence
Finding

The skill documents creation of recurring schedule entries despite the description limiting recurring features to read-only answers. Hidden write access to recurring financial data can mislead users and reviewers about what actions the skill can take.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
91% confidence
Finding

The skill documents creation of recurring schedule entries despite the description limiting recurring features to read-only answers. Hidden write access to recurring financial data can mislead users and reviewers about what actions the skill can take.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

The skill documents creation of recurring schedule entries despite the description limiting recurring features to read-only answers. Hidden write access to recurring financial data can mislead users and reviewers about what actions the skill can take.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

The skill documents creation of recurring schedule entries despite the description limiting recurring features to read-only answers. Hidden write access to recurring financial data can mislead users and reviewers about what actions the skill can take.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

The skill documents creation of recurring schedule entries despite the description limiting recurring features to read-only answers. Hidden write access to recurring financial data can mislead users and reviewers about what actions the skill can take.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
97% confidence
Finding

The skill documents creation of recurring schedule entries despite the description limiting recurring features to read-only answers. Hidden write access to recurring financial data can mislead users and reviewers about what actions the skill can take.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

The skill documents creation of recurring schedule entries despite the description limiting recurring features to read-only answers. Hidden write access to recurring financial data can mislead users and reviewers about what actions the skill can take.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
97% confidence
Finding

The skill documents creation of recurring schedule entries despite the description limiting recurring features to read-only answers. Hidden write access to recurring financial data can mislead users and reviewers about what actions the skill can take.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
96% confidence
Finding

The skill documents creation of recurring schedule entries despite the description limiting recurring features to read-only answers. Hidden write access to recurring financial data can mislead users and reviewers about what actions the skill can take.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
97% confidence
Finding

The skill documents creation of recurring schedule entries despite the description limiting recurring features to read-only answers. Hidden write access to recurring financial data can mislead users and reviewers about what actions the skill can take.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
95% confidence
Finding

The skill documents creation of recurring schedule entries despite the description limiting recurring features to read-only answers. Hidden write access to recurring financial data can mislead users and reviewers about what actions the skill can take.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

The skill documents creation of recurring schedule entries despite the description limiting recurring features to read-only answers. Hidden write access to recurring financial data can mislead users and reviewers about what actions the skill can take.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
97% confidence
Finding

The skill documents creation of recurring schedule entries despite the description limiting recurring features to read-only answers. Hidden write access to recurring financial data can mislead users and reviewers about what actions the skill can take.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
94% confidence
Finding

The skill documents creation of recurring schedule entries despite the description limiting recurring features to read-only answers. Hidden write access to recurring financial data can mislead users and reviewers about what actions the skill can take.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
93% confidence
Finding

The skill documents creation of recurring schedule entries despite the description limiting recurring features to read-only answers. Hidden write access to recurring financial data can mislead users and reviewers about what actions the skill can take.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
95% confidence
Finding

The skill documents creation of recurring schedule entries despite the description limiting recurring features to read-only answers. Hidden write access to recurring financial data can mislead users and reviewers about what actions the skill can take.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
96% confidence
Finding

The skill documents creation of recurring schedule entries despite the description limiting recurring features to read-only answers. Hidden write access to recurring financial data can mislead users and reviewers about what actions the skill can take.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

The skill documents creation of recurring schedule entries despite the description limiting recurring features to read-only answers. Hidden write access to recurring financial data can mislead users and reviewers about what actions the skill can take.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
95% confidence
Finding

The skill documents creation of recurring schedule entries despite the description limiting recurring features to read-only answers. Hidden write access to recurring financial data can mislead users and reviewers about what actions the skill can take.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.