T08 · Insecure Dependencies
- Location
package-lock.json:23- Finding
Dependencies Retrieved from an Insecure HTTP Registry Mirror
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This income-tracking skill is mostly purpose-aligned, but it handles sensitive financial records with weak storage/export protections and uses insecure dependency download URLs.
Review this before installing if you will store real income data. Use a private DATA_PATH, verify file permissions, avoid opening exported CSVs containing untrusted notes or sources, and prefer a regenerated HTTPS lockfile with unnecessary dependencies removed.
package-lock.json:23Dependencies Retrieved from an Insecure HTTP Registry Mirror
index.js:390Spreadsheet Formula Injection and Invalid CSV Escaping
index.js:103Financial Records Stored Without Explicit Restrictive Permissions
The skill advertises capabilities that imply environment or runtime access, but it does not declare any explicit tool scope or permission boundaries. In a finance-related skill that handles potentially sensitive income data, missing scope declarations increase the risk of over-privileged execution or unintended access to local environment data.
The description and all listed triggers and commands are presented in Chinese, with no indication that other languages are supported or that Chinese is an intentional region-specific limitation. Under the policy, forcing a specific language without user opt-in can be a natural-language policy issue.
The trigger phrases are broad, generic, and overlap with ordinary user conversation about income, reporting, or analysis. This can cause accidental activation, leading to unintended handling of financial data or execution of tracking actions when the user did not explicitly intend to invoke the skill.
The skill states that it supports cloud sync and uses real-time exchange-rate interfaces, but it does not clearly disclose what data may be transmitted externally, to whom, or under what conditions. Because the skill processes financial information, undisclosed outbound data flows can expose sensitive income metadata and user activity patterns.
Very short shortcut commands such as '收入', '月报', and '趋势' are highly ambiguous and likely to appear in normal conversation. In this context, accidental invocation is especially risky because the skill concerns sensitive financial records and may expose or modify private income information.
The file description, user-facing messages, source names, and reporting text are written in Chinese, and the default settings also force Asia/Shanghai and CNY. Under the policy, locale or language constraints should not be imposed without user opt-in or clear justification, and no such opt-in or justification is present here.
Most user-facing natural-language content, including the description, config description, features, and nearly all triggers, is presented only in Chinese. This effectively imposes a language/locale constraint without offering user choice or documenting a region-specific justification.
The trigger phrase set includes very generic finance-related phrases such as '记录收入' and '查看收入' that can match ordinary user requests broadly, causing the skill to activate in contexts the user may not have intended. Because the skill handles potentially sensitive personal financial data and writes to a local data path, overbroad activation increases the risk of unintended data capture, modification, or disclosure through accidental invocation.
The natural-language description is entirely in Chinese ("收入追踪器 - 多平台收入记录、统计分析、趋势图表") with no indication that other languages are supported or that the package is intentionally limited to a Chinese-speaking region. Under the policy, forcing a specific language without user opt-in is a reportable locale/language issue.
Dependencies lack version pinning, allowing potential malicious package updates. Consider pinning versions.
"author": "clawd",
"license": "MIT",
"dependencies": {
"asciichart": "^1.5.25",
"chalk": "^4.1.2",
"dayjs": "^1.11.10"
},
Dependencies lack version pinning, allowing potential malicious package updates. Consider pinning versions.
"license": "MIT",
"dependencies": {
"asciichart": "^1.5.25",
"chalk": "^4.1.2",
"dayjs": "^1.11.10"
},
"devDependencies": {},
Dependencies lack version pinning, allowing potential malicious package updates. Consider pinning versions.
"dependencies": {
"asciichart": "^1.5.25",
"chalk": "^4.1.2",
"dayjs": "^1.11.10"
},
"devDependencies": {},
"engines": {
No suspicious patterns detected.