Back to skill

Security audit

RSS采集器免费版

Security checks for vulnerabilities and agentic risk

Overview

This RSS skill appears purpose-aligned and not malicious, but its documentation is inconsistent and users should keep control over local commands and data changes.

Before installing, be comfortable with an agent running local Python commands, installing feedparser, accessing configured RSS URLs, and creating or modifying local SQLite/config files. Use a virtual environment, pin dependencies where possible, back up data/rss_fetcher.db, and require confirmation before source changes, crontab scheduling, or any database deletion.

Vulnerability Patterns
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Agent Memory PoisoningWrites attacker-controlled rules into memory that affect later sessions
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
Findings (1)

T08 · Insecure Dependencies

Warning
Location
SKILL.md:394
Finding

Unpinned Third-Party Python Dependency

Content
View full analysis

Vulnerability Details

File Location: SKILL.md, line 394
Vulnerability Type: Unpinned third-party dependency installation
Risk Level: Medium

Vulnerable code snippet:

bash
pip3 install feedparser

Technical Analysis

The Skill instructs the user or an execution-capable Agent to install feedparser without specifying an exact version or verifying an integrity hash. Consequently, the installed artifact can change over time without any corresponding change to the reviewed Skill.

The package name refers to a legitimate dependency and there is no evidence that it is currently malicious. Nevertheless, the installation method does not provide reproducible or integrity-verified dependency resolution. If the package, one of its transitive dependencies, or the relevant package-distribution infrastructure were compromised, malicious package code could execute during installation or subsequent use.

Attack Path

  1. An attacker compromises a future release of feedparser, a resolved transitive dependency, a maintainer account, or the dependency-distribution channel.
  2. A user or Agent follows the Skill instructions and runs pip3 install feedparser.
  3. Package resolution retrieves the compromised version because the Skill defines neither an approved version nor expected hashes.
  4. Malicious package code executes during installation or when the RSS functionality imports the dependency.
  5. The code operates with the same permissions and environmental access as the user or Agent that performed the installation.

Impact Assessment

Successful exploitation could permit arbitrary code execution within the installing user's security context. Depending on that context, an attacker could access files readable by the user, alter writable project or environment files, access environment variables, make network requests, or compromise data processed by the Skill.

The finding does not independently provide ...[truncated 360 chars]

Remediation
View remediation

Remediation Suggestions

  • Pin feedparser to an explicitly reviewed version rather than resolving the latest available release.
  • Record dependencies in a lock file or fully pinned requirements file.
  • Include cryptographic hashes and install with hash verification, such as pip install --require-hashes -r requirements.txt.
  • Review and pin all transitive dependencies where the selected dependency-resolution workflow permits it.
  • Install the package inside a dedicated virtual environment with no administrative privileges.
  • Obtain dependencies only from an explicitly configured trusted package index.
  • Use automated dependency scanning and controlled update reviews before changing pinned versions.
Vulnerability Patterns
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (7)

Missing User Warnings

High
Category
Not specified by scanner
Confidence
96% confidence
Finding

The recovery guidance recommends deleting the SQLite database and rebuilding it, but does not present a strong, immediate warning that this permanently destroys locally collected data. In this skill's context, the database is the primary asset, so an agent or user following this advice could cause irreversible data loss.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

SKILL.md在能力表中明确写明“数据导出 | 不支持”,且后续“无数据导出功能”再次强调无导出能力。但同一文档又在L072-L073、L079、L086、L093、L100反复写明支持“导出操作”,并在L247-L248展示“--json”输出示例,这表明技能实际意图包含某种导出/结构化输出能力,与其自称的免费版限制不一致。

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

L095-L096声明免费版“无数据导出功能”,但L098-L100又写明会解析其输入参数并“支持创建/查询/导出操作”。这不是单纯信息不全,而是对同一能力是否存在给出了相反描述,容易误导使用者理解技能边界。

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The trigger condition is overly broad ('use when database operations, SQL queries, data storage management are needed'), which can cause the skill to activate for unrelated requests. In an agent context with exec capability and local file/database operations, over-triggering can lead to unnecessary command execution or unintended modification of local state.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
87% confidence
Finding

The skill instructs initialization, configuration edits, and source add/disable operations that change local files and database state, but it does not prominently require user confirmation or warn about side effects. In an agent setting, this increases the risk of silent local state changes, accidental overwrites, or persistent configuration modification without informed consent.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
83% confidence
Finding

文件标题、摘要、说明、示例和操作指引均固定为中文,没有说明这是面向特定中文地区用户的限定技能,也没有给出语言可选项。若组织要求避免在未获用户同意时强制特定语言,这种单一语言约束属于自然语言层面的策略风险。

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Low
Category
Not specified by scanner
Confidence
91% confidence
Finding

L088-L089明确表示该能力不存在,即“无HTML报告生成”。但紧随其后的L091-L093又使用标准能力模板,声称会解析该能力输入参数、完成核心逻辑并返回响应,这与前述“无该功能”直接矛盾,属于文档意图与实际说明冲突。

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.