Security checks for vulnerabilities and agentic risk
Overview
The skill is a fund-advice calculator with no evidence of exfiltration or destructive behavior, but it gives actionable financial recommendations and silently persists some financial command history locally.
Review before installing. This skill should not be treated as a licensed financial adviser: its allocation, rebalancing, and Kelly outputs are generic calculations and may be unsuitable for your circumstances. Avoid entering sensitive transaction descriptions unless you are comfortable with local plaintext history being written under the fund-advisor-cn data directory, and inspect or delete that directory if needed.
The track command writes the user-supplied transaction description to history.log in plaintext. The script creates the data directory and log file without explicitly applying restrictive permissions. Their effective permissions therefore depend on the invoking user's umask and the permissions of a caller-controlled FUND_ADVISOR_CN_DIR.
Under common permissive defaults, the directory may be created with mode 0755 and the log with mode 0644. This can expose transaction descriptions to other local accounts or processes that can read the selected directory. The persistence of this information is also not disclosed in SKILL.md, which presents the project primarily as an investment-advice and calculation tool.
The amount supplied to cmd_track is displayed but is not written by _log; the confirmed exposure is the transaction description and associated timestamp.
Attack Path
A user invokes the documented executable with a sensitive description, for example:
bash
fund-advisor-cn track "Medical debt payment" 5000
cmd_track passes the description to _log.
_log appends the timestamp, operation name, and description to:
text
~/.local/share/fund-advisor-cn/history.log
or to the path selected through FUND_ADVISOR_CN_DIR.
If inherited directory and file permissions allow access, another
...[truncated 953 chars]
Remediation
View remediation
Remediation Suggestions
Establish a restrictive process umask before creating any storage:
bash
umask 077
Create the application directory with owner-only permissions and verify existing directories:
Do not persist transaction descriptions by default. Require explicit opt-in or log only a non-sensitive event such as transaction recorded.
Clearly document what data is retained, where it is stored, how long it is retained, and how users can inspect or delete it.
Provide commands to clear history and configure retention limits. Consider automatic redaction or bounded log rotation.
Validate a caller-provided FUND_ADVISOR_CN_DIR before use. Reject unsafe destinations such as shared or world-writable directories, and check for symbolic-link or ownership issues before writing.
If retaining sensitive transaction details is a required feature, consider encryption at rest using operating-system credential storage or a user-managed encryption key.
The description explicitly says to use the skill when making fund investment decisions, which is an overly broad activation scope for a finance-oriented skill. This can cause the agent to invoke the skill for personalized or consequential financial guidance without clear limitations, suitability checks, or advice disclaimers, increasing the risk of unsafe financial recommendations.
Content
No source excerpt is available for this finding.
Vague Triggers
Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding
The repeated description again frames the skill as appropriate for general investment decision-making and portfolio actions such as asset allocation and rebalancing, without defining boundaries or requiring risk/suitability context. In this domain, broad activation increases the chance the system will rely on the skill for actionable financial advice that may be inappropriate for a user's circumstances.
Content
No source excerpt is available for this finding.
Ae4
Medium
Category
analysis-evasion
Confidence
80% confidence
Finding
Suspicious Unicode normalization or mixed-script content
Content
No source excerpt is available for this finding.
Missing User Warnings
Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding
The asset-allocation logic provides concrete portfolio recommendations, expected returns, and behavioral advice without any warning that outputs are generic, non-fiduciary, and unsuitable as personalized financial advice. In a skill intended to guide investments, this increases the chance that users act on oversimplified recommendations that do not account for suitability, legal/regulatory requirements, or financial harm.
Content
No source excerpt is available for this finding.
Missing User Warnings
Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding
The Kelly-criterion feature gives position-sizing guidance including statements that can normalize heavy allocation, while only lightly qualifying that half-Kelly is safer. Because Kelly sizing is highly sensitive to input errors and estimation bias, presenting it without strong warnings can encourage dangerous overbetting and outsized losses.
Content
No source excerpt is available for this finding.
Intent-Code Divergence
Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding
The header and help text describe commands such as track, balance, summary, budget, compare, and forecast as real financial features. However, the implementations mostly just echo static strings and append command names to a history log, without recording transactions to the declared data store or computing balances, summaries, comparisons, or forecasts.
Content
No source excerpt is available for this finding.
Natural-Language Policy Violations
Medium
Category
Not specified by scanner
Confidence
72% confidence
Finding
The name "fund-advisor-cn" suggests a Chinese locale or region-specific variant, but the file does not explain the locale restriction or provide any opt-in or alternative. Under the language/locale policy, forcing a specific locale without user choice or justification can be a policy concern.
Content
No source excerpt is available for this finding.
Missing User Warnings
Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding
The script logs user-supplied transaction-related data to local files under a persistent data directory without explicit disclosure, consent, or access controls. Financial descriptions and related metadata can contain sensitive personal information, and silent persistence increases privacy risk, especially on shared systems or where home-directory backups and indexing expose the files more broadly.
Content
No source excerpt is available for this finding.
Natural-Language Policy Violations
Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding
This markdown file contains user-facing instructional content exclusively in Chinese, and nowhere indicates that the skill is China-specific or that users may choose another language. Under the stated policy, forcing a specific language without user opt-in is a natural-language policy violation.
Content
No source excerpt is available for this finding.
Natural-Language Policy Violations
Low
Category
Not specified by scanner
Confidence
98% confidence
Finding
Nearly all user-facing strings, help text, and usage guidance are presented only in Chinese, with no indication that the skill is intentionally region-specific or that users may select another language. This can violate language/locale policy when a skill imposes a specific language without opt-in or documented justification.
Content
No source excerpt is available for this finding.
Intent-Code Divergence
Low
Category
Not specified by scanner
Confidence
93% confidence
Finding
The help text does not fully enumerate implemented commands such as sharpe, maxdd, kelly, monte, fire, var, irr, and cost, which means users and reviewers may underestimate the script's capabilities. While this is not code execution risk, incomplete self-documentation reduces transparency and can hide higher-risk features from casual inspection or policy review.