Back to skill

Security audit

Smart Ledger

Security checks for vulnerabilities and agentic risk

Overview

This is a local expense-tracking skill with disclosed file storage and no evidence of hidden network access, credential use, persistence, or deceptive behavior.

Reasonable to install if you want a local Chinese/CNY personal expense tracker. Back up ~/.openclaw/workspace/data/expenses/expenses.json before using delete or bulk edits, and expect limited English/localization support.

Vulnerability Patterns
  • 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
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
Vulnerability Patterns
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • 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
Findings (7)

Tp4

High
Category
MCP Tool Poisoning
Confidence
95% confidence
Finding

The declared description presents a full-featured smart expense tracker focused on quick natural-language bookkeeping and automatic classification, with reporting as part of the feature set. The supplied code only implements the reporting/analysis portion: it loads an existing local JSON file, filters records by date, aggregates totals/categories, formats reports, and offers trend/anomaly summaries from the command line. While local JSON storage and report/trend generation are consistent with the description, the primary user-facing capabilities of natural-language entry and automatic categorization are absent, and there is no code to add or manage records. Therefore the description materially overstates what this code chunk actually does.

Content

No source excerpt is available for this finding.

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
89% confidence
Finding

The skill documentation describes invoking Python scripts that read and write local files and are executed via shell, but the manifest does not declare any explicit tool scope or permissions. This creates a transparency and governance gap: hosts or reviewers cannot easily constrain what the skill is expected to access, increasing the chance of unintended file access or command execution beyond the user's expectations.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
89% confidence
Finding

The skill documents a delete command that removes records by ID but provides no warning, confirmation prompt, backup guidance, or recovery mechanism. In a finance-tracking context, accidental or scripted deletion can cause integrity loss of personal financial records, and local JSON storage makes recovery difficult if no backups exist.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

This codebase presents its title, docstrings, CLI help, and output strings entirely in Chinese, which indicates a fixed language/locale behavior. Under the policy rule, forcing a specific language without user opt-in is a natural-language policy violation unless the locale restriction is explicitly justified or configurable.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
83% confidence
Finding

This JSON config hard-codes China-specific locale settings, including CNY currency, the yuan symbol, and a fixed date format. Under the policy, forcing a specific language/locale without user opt-in or clear region-specific justification is a natural-language policy concern.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
91% confidence
Finding

This code file contains natural-language descriptions and CLI messages that assume Chinese as the only interaction language. Under the language/locale policy rule, forcing a specific language without user opt-in can be a policy violation when no alternative or opt-in is offered.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Low
Category
Not specified by scanner
Confidence
93% confidence
Finding

The manifest describes generation of daily/weekly/monthly reports and trend analysis, suggesting richer reporting capabilities. In the code, reporting is limited to a generic period summary with totals and category breakdown, and there is no computation of trends, comparisons, or dedicated daily/weekly/monthly report generation beyond passing a day count.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.