T08 · Insecure Dependencies
- Location
requirements.txt:1- Finding
Unpinned and Unnecessary Third-Party Dependencies
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This news skill appears non-destructive, but it overstates its news coverage and runs local code plus unpinned package installs for broad news requests.
Review before installing. This skill does not show exfiltration or destructive behavior, but users should expect it to run a local Python script, fetch BBC Vietnamese RSS content, and install mutable Python dependencies. It should be tightened by accurately describing its source and locale, pinning and reducing dependencies, and treating fetched RSS entries as untrusted external reports rather than verified data.
requirements.txt:1Unpinned and Unnecessary Third-Party Dependencies
SKILL.md:15Remote RSS Content Is Incorrectly Treated as Verified Agent Input
The skill claims to provide latest global or breaking news, but the instructions indicate it uses a specific BBC Vietnamese source and undisclosed network behavior. This mismatch can mislead users and reviewers about both the breadth of content and the external access being performed, increasing the risk of unauthorized or unexpected data retrieval.
The skill invokes a Python script that fetches external news content, which implies network access, but it declares no permissions or allowed-tools scope. This weakens policy enforcement and transparency, making it easier for the skill to perform external data access without explicit review or user expectation.
The skill hardcodes BBC News Tiếng Việt as the source without asking the user to opt into that locale or language preference. While not inherently malicious, this can produce misleading or inappropriate results for users expecting general global news in another language, and it obscures the actual source constraints.
The activation condition covers generic requests for latest or trending news, which are common and can cause the skill to run in many normal conversations without clear user intent for external fetching. Broad triggering increases the chance of unnecessary subprocess and network execution, expanding exposure and making misuse or surprise activation more likely.
The skill directs the agent to execute a subprocess through conda/python without any user-facing notice that code will run and external content will be fetched. Hidden execution reduces informed consent and auditability, and if the runtime or script is modified, the agent may execute unintended behavior under the guise of a routine news request.
This file hard-codes Vietnamese content sources and emits mixed Vietnamese/English user-facing text, including Vietnamese error/log strings and a Vietnam-specific BBC RSS feed URL. There is no option for the user to choose language or locale, which creates a natural-language policy concern under the language/locale rule.
The dependency is declared without a version pin, which makes builds non-reproducible and can cause the environment to resolve to vulnerable or incompatible releases over time. In a news-fetching skill that relies on external parsing libraries, this increases supply-chain risk even if no specific exploit is proven from this file alone.
beautifulsoup4
bs4
requests
feedparser
The bs4 requirement is unpinned, so installations may pull different versions at different times, reducing reproducibility and making it harder to verify whether known security fixes are present. This is a supply-chain hygiene issue rather than direct malicious behavior.
beautifulsoup4
bs4
requests
feedparser
Requests is unpinned, which means deployments may resolve to a release containing known vulnerabilities or behavioral regressions. Because this skill fetches remote content from the internet, leaving the HTTP client version unconstrained increases exposure to request-handling flaws and credential-leak bugs.
beautifulsoup4
bs4
requests
feedparser
The file declares requests without a version, and that package has multiple known advisories across releases. Because the version is unverifiable, it is impossible to determine from this manifest whether a safe or vulnerable release will be installed, which is especially relevant for a skill that makes outbound network requests.
Feedparser is unpinned, so the installed version may vary and could include releases affected by known parsing-related vulnerabilities. Since this skill processes external news feeds, an outdated or vulnerable parser could increase risk from maliciously crafted feed content.
beautifulsoup4
bs4
requests
feedparser
Feedparser has known historical advisories, but this manifest does not pin a version, so a vulnerable release could be installed without visibility. In a news skill that ingests untrusted external feeds, parser vulnerabilities are more concerning because attackers may control feed content.