T08 · Insecure Dependencies
- Location
SKILL.md:15- Finding
Unpinned Third-Party Package Execution During Installation
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This skill needs Review because it presents mostly demo or stub brand monitoring as real monitoring and recommends an unpinned global installer command.
Install only after the publisher provides a pinned, verifiable installer and clearly labels or implements live monitoring. Treat current reports as demo output, not reliable brand intelligence, and avoid running the global npx command with elevated privileges.
SKILL.md:15Unpinned Third-Party Package Execution During Installation
A second, broader description-behavior mismatch indicates undeclared functionality and multiple missing core features such as sentiment analysis, trend tracking, crisis detection, and competitor comparison. Misrepresentation of security-relevant or decision-supporting behavior reduces operator trust and can cause unsafe reliance on fabricated or incomplete monitoring results.
A second, broader description-behavior mismatch indicates undeclared functionality and multiple missing core features such as sentiment analysis, trend tracking, crisis detection, and competitor comparison. Misrepresentation of security-relevant or decision-supporting behavior reduces operator trust and can cause unsafe reliance on fabricated or incomplete monitoring results.
The skill advertises functionality that relies on network access but does not declare any explicit tool scope or permissions. This weakens reviewability and can lead to unexpected outbound access if the skill is installed or executed in an environment that grants broader defaults than intended.
Using an unpinned 'npx skills' invocation introduces supply-chain risk because the fetched package/version can change over time. An attacker who compromises the package, a dependency, or resolves a malicious version could cause users to install or run unexpected code.
The source-specific monitoring functions are placeholders that only print status messages and return empty results, while the skill promises basic no-API-key monitoring. This creates a deceptive operational state where users may believe monitoring is occurring when no live collection happens, undermining incident awareness and trust.
The skill’s advertised capability does not match its actual behavior: the main monitoring flow uses only demo mentions and never performs live collection from DuckDuckGo or Google News. In a security-sensitive agent ecosystem, this is dangerous because it can mislead users and downstream automations into trusting stale or fabricated monitoring coverage, causing missed detections or bad decisions.
The CLI sets the output language to Chinese whenever the string "--zh" appears in the arguments, but it also treats the first non-flag argument as the brand name. This creates a locale-handling behavior where language selection is implicit and hard-coded to English/Chinese only, rather than clearly offering a user choice or documenting a justified locale constraint.
The top-level docstring presents this file as brand-monitoring data scrapers for multiple data sources, and individual methods are documented as searches. In practice, the network calls and parsing are commented out for Reddit, Google News, and DuckDuckGo, while YouTube and Twitter only print notes and return empty results, contradicting the stated behavior.
The request URL fixes the locale parameters to hl=en-US, gl=US, and ceid=US:en, which forces a specific language and region behavior. This is a natural-language locale policy concern because users are not offered a language/region choice and no region-specific justification is documented in the file.
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
"""DuckDuckGo Search (Free,no API key)"""
# DuckDuckGo Instant Answer API
API_URL = "https://api.duckduckgo.com/"
def search(self, query: str) -> List[SearchResult]:
"""Search DuckDuckGo"""
The manifest scope names Reddit, Google News, YouTube, and DuckDuckGo as the monitoring targets. This file adds a TwitterScraper and wires it into the unified search interface, extending the monitored platforms beyond the declared description.
The inline comments describe real Reddit API or crawler usage, but the function body only returns an empty list. While not code execution or data theft, this is still a security-relevant integrity issue because misleading implementation comments can hide nonfunctional monitoring and cause reviewers or operators to overestimate coverage.
No suspicious patterns detected.