T08 · Insecure Dependencies
- Location
README.md:30- Finding
Unpinned Third-Party Package Execution Through npx
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This crypto news skill is not clearly malicious, but users should review it because installation runs an unpinned remote package and the main news command shows mock data as if it were current news.
Before installing, verify the exact registry package and pin a reviewed version instead of running the floating npx command. Treat the main news output as demo data, not market-current information, and be cautious with links printed from live RSS search results.
README.md:30Unpinned Third-Party Package Execution Through npx
scripts/search.mjs:24Untrusted RSS Content Is Written to the Terminal Without Sanitization
scripts/search.mjs:23RSS Requests Lack Effective Time and Response-Size Limits
The README instructs users to execute npx @gztanht/newspulse without pinning a specific package version. Because npx fetches the latest published package at execution time, a compromised maintainer account, malicious new release, or dependency-chain issue could cause users to run unexpected code immediately on their systems. In a skill intended for broad public installation, this increases supply-chain risk rather than being a purely theoretical concern.
The skill advertises and requires Node/npm and describes fetching remote RSS feeds, which implies network-capable execution, but it does not declare any explicit tool scope or permission boundaries. This weakens sandbox transparency and can allow broader-than-expected network access, increasing the risk of unintended outbound connections or abuse if the package behavior changes.
This file contains user-facing description and usage headings primarily in Chinese, while the policy requires flagging language or locale constraints that are imposed without user opt-in. Although line L037 mentions English/Chinese news support, the skill documentation itself does not offer a language choice for users consuming the skill instructions.
Using npx @gztanht/newspulse without pinning an exact version causes execution of whatever package version is current at install time. This creates a supply-chain risk: if the package is updated maliciously, compromised, or publishes breaking behavior, users may execute unreviewed code with network access immediately.
This code file contains natural-language strings and help text that present the skill as Chinese-only, including the title, usage, options, and output labels. The policy allows locale constraints only when the skill offers opt-in choice or clearly documents a justified regional limitation, neither of which is present here.
The skill advertises real-time crypto news aggregation, but the implementation serves only hard-coded mock items and never performs live retrieval or push delivery. In a financial/news context, this can mislead users into making time-sensitive decisions based on fabricated or stale data, which is a trust and integrity issue even though it is not direct code execution.
This code file contains natural-language strings and comments that force a specific language/locale for help output and status messages. Under the policy, a skill should not impose a language choice on users unless it offers opt-in or clearly documents a justified locale constraint.
The status output, error messages, usage text, and help content are all presented only in Chinese. This is a natural-language policy violation because the skill forces a specific language rather than allowing user choice or documenting a justified regional constraint.
The natural-language description is entirely in Chinese, which can impose a specific language on users without any opt-in or indication that the skill is intentionally region- or language-specific. Under the policy rules, language constraints should either provide user choice or be clearly justified.
Using a caret range for node-fetch allows future compatible releases to be installed implicitly, which weakens build reproducibility and can unexpectedly introduce vulnerable or malicious upstream code. In a network-facing news aggregation skill, dependency drift matters because HTTP client behavior directly affects remote content fetching and trust boundaries.
"author": "@gztanht",
"license": "MIT",
"dependencies": {
"node-fetch": "^3.3.2"
},
"repository": {
"type": "git",
The manifest references node-fetch without an exact pin, while known advisories exist for some node-fetch versions, so consumers cannot verify whether installation resolves to an affected release. Because this skill fetches external news content, weaknesses in the HTTP client can expose requests, headers, or resource handling to attacker-controlled endpoints.
The comments describe a legitimate live RSS path, but the executed path intentionally uses mock data instead, increasing the chance that reviewers or users believe the script is operating on real feeds. This mismatch is dangerous because it obscures actual behavior and reinforces deceptive output in a market-sensitive crypto setting.