Back to skill

Security audit

The News Tool Free

Security checks for vulnerabilities and agentic risk

Overview

This news skill appears non-malicious, but its instructions mix news lookup with unrelated database-operation triggers and include persistent cron scheduling guidance without enough safety controls.

Install only if you are comfortable with a skill that makes public news API requests and may be misrouted by its own database/SQL wording. Do not use it for database, SQL, storage, confidential, or personal-data workflows, and avoid installing the cron example unless you explicitly want a persistent scheduled task and manage script permissions, logs, and removal yourself.

Vulnerability Patterns
  • System PersistenceInstalls backdoors, hooks, services, or scheduled tasks that survive the run
  • 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)

T06 · System Persistence

Error
Location
SKILL.md:200
Finding

Persistent Daily Execution Through User Crontab

Content
View full analysis

Vulnerability Details

File Location: SKILL.md, lines 200-202
Vulnerability Type: Scheduled-task persistence
Risk Level: High

bash
# Configure crontab for daily delivery (crontab -e)
# Fetch news every day at 8 AM
0 8 * * * /path/to/news_fetch.sh >> /tmp/daily_news.log

Technical Analysis

The Skill instructs the user to register news_fetch.sh as a recurring cron task. A crontab entry survives the current Agent or Skill session and executes the referenced script every day with the privileges of the account that owns the crontab.

Persistent scheduling is not necessary for the Skill's declared core functionality of performing on-demand news API queries. It therefore exceeds the minimum execution lifetime needed for that functionality. The referenced script path is also presented as a placeholder without requirements for ownership, integrity validation, or restrictive permissions. If the resolved script can later be modified or replaced, the cron entry will automatically execute the altered content.

Output is appended to the predictable path /tmp/daily_news.log. The example provides no permission controls, safe file handling, or log rotation. This can result in uncontrolled log growth and may expose news-query output to other local users depending on the host's permissions and configuration.

Attack Path

  1. A user follows the Skill instructions and edits their crontab.
  2. The user registers the provided entry with a real path to news_fetch.sh.
  3. The cron entry remains installed after the Skill and Agent session terminate.
  4. An attacker or another process capable of modifying or replacing the referenced script changes its contents.
  5. At the next scheduled time, cron executes the modified script automatically.
  6. The substituted commands run with the privileges and environment available to the crontab owner.
  7. Execution output continues to be appended to /tmp/daily_news.log, poten ...[truncated 774 chars]
Remediation
View remediation

Remediation Suggestions

  1. Remove the crontab instructions from the default usage flow and keep news retrieval explicitly user-initiated.
  2. If scheduled delivery is a required optional feature, obtain explicit informed consent before creating any persistent task and clearly explain its execution frequency, privilege context, output destination, and lifetime.
  3. Do not modify a user's crontab automatically. Provide a command that displays the proposed entry and require the user to install it manually.
  4. Use an absolute, validated script path in a directory writable only by the owning user or administrator.
  5. Require restrictive script ownership and permissions, such as preventing group or world write access, before scheduling execution.
  6. Validate the script's integrity before each execution or deploy an immutable, versioned script where practical.
  7. Store logs in a private application-specific directory rather than a predictable shared temporary path. Apply restrictive permissions and configure size limits or log rotation.
  8. Provide explicit removal and verification instructions, including how to delete the cron entry and confirm that no persistent task remains.
  9. Run the scheduled operation with the least-privileged dedicated account where scheduling is genuinely necessary, and avoid installation under administrative or root accounts.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Rogue AgentSelf-Modification, Session Persistence
  • 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
Findings (9)

Intent-Code Divergence

High
Category
Not specified by scanner
Confidence
99% confidence
Finding

The description mixes an unrelated database/SQL invocation trigger into a news-fetching skill, creating a scope-confusion problem. In an agent environment, this can cause the skill to be invoked for database tasks it does not actually perform, potentially routing sensitive user prompts or data into external HTTP requests to an unrelated public API.

Content

No source excerpt is available for this finding.

Vague Triggers

High
Category
Not specified by scanner
Confidence
98% confidence
Finding

An unrelated trigger about database/SQL operations is a dangerous prompt-routing ambiguity because it can cause the skill to activate outside its actual domain. Given this skill uses external network access via exec/curl, misrouting increases the risk that sensitive operational requests or data are sent to an external endpoint without user intent.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill omits a clear warning that user-supplied queries may be transmitted to an external public API. Without this disclosure, users and orchestrators may provide sensitive text under the mistaken belief that processing is local or trusted, creating an avoidable privacy and data-exposure risk.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

Claiming support for create/query/export operations in a read-only news tool misrepresents the skill's capabilities and broadens when an agent may select it. That ambiguity can cause inappropriate use in workflows involving data handling, increasing the chance that user input or sensitive context is disclosed to an external service under false assumptions.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

The repeated create/query/export claim in the historical lookup section again suggests state-changing or data-management functions that do not exist. Repetition increases the likelihood an orchestrator or user will trust the wrong operational scope and send unsuitable or sensitive requests through the skill.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
88% confidence
Finding

Applying create/query/export claims to a descriptive multi-language coverage section is misleading and further inflates the apparent authority of the skill. In agent routing contexts, this kind of overclaim can expand activation scope and expose user prompts to an unnecessary third-party API.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
88% confidence
Finding

The AI summary section says create/query/export despite only describing returned summaries from an API response. This mismatch can mislead users and orchestration logic about data-processing authority, encouraging use in contexts where external disclosure or workflow confusion is unsafe.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The fragmented and overly broad keyword coverage greatly expands the skill's possible activation surface. Such vague triggers are risky in agent systems because they can match unrelated user intents and cause unnecessary external API calls or improper delegation.

Content

No source excerpt is available for this finding.

Session Persistence

Medium
Category
Rogue Agent
Confidence
85% confidence
Finding

The crontab example introduces persistence by scheduling repeated execution and writing output to a log file. While presented as a convenience feature, persistence in an agent skill increases operational risk because it can continue making external requests and accumulating potentially sensitive output beyond the immediate user session.

Content

Scanner excerpt · SKILL.md (reported line 200)May include surrounding context.

定时新闻推送

bash
# 配置 crontab 每日推送(crontab -e)
# 每天早上 8 点获取新闻
0 8 * * * /path/to/news_fetch.sh >> /tmp/daily_news.log