Back to skill

Security audit

ai news daily new

Security checks for vulnerabilities and agentic risk

Overview

The skill mostly matches an AI news-brief purpose, but it also instructs recurring automated writes to hard-coded Tencent Docs destinations without enough user control.

Review this carefully before installing. It is reasonable for generating AI news digests, but only use the scheduled Tencent Docs publishing path if you control the destination documents, understand what account credentials the Tencent Docs API will use, and have a way to preview, audit, disable, and remove the recurring job. For ordinary use, prefer running it on demand and returning the brief in the current session.

Vulnerability Patterns
  • System PersistenceInstalls backdoors, hooks, services, or scheduled tasks that survive the run
  • Insecure Skill Coding PracticesFinds exploitable flaws such as hardcoded secrets or command injection
  • 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
Findings (2)

T06 · System Persistence

Warning
Location
SKILL.md:358
Finding
Persistent Daily Execution Through a Scheduled Cron Task## Vulnerability Details **File Location**: `SKILL.md`, lines 358–368 **Vulnerability Type**: Persistent scheduled execution **Risk Level**: Medium ### Vulnerable Code ```markdown ## Task Scheduling This skill is designed to be run on a daily schedule. To automate it, set up a cron job that triggers this skill once per day (recommended time: 07:00–09:00 Asia/Shanghai). **Recommended cron configuration:** - Schedule: `cron` expression `0 7 * * *` with timezone `Asia/Shanghai` - Session target: `isolated` (do not run in the main conversation session) - Delivery: `none` (results are written directly to Tencent Docs; no Feishu push needed) ``` ### Technical Analysis The Skill instructs the agent or operator to create a recurring cron task that survives the current invocation and runs once per day in an isolated session. Persistent scheduling is not required for the Skill's core declared function of generating an AI news brief on demand. The instructions do not require explicit user confirmation immediately before creating the schedule. They also do not specify how to enumerate, disable, or remove the resulting job, define an expiration date, or limit the number of executions. Running in an isolated session with delivery disabled reduces visibility into subsequent executions. Although the snippet does not itself implement a backdoor, following it creates cross-session persistence and allows the Skill to continue invoking network-enabled tools after the original interactive task has ended. ### Attack Path 1. A user invokes the Skill to generate an AI news brief. 2. The agent processes the scheduling section and creates the recommended cron job. 3. The job persists after the original session terminates. 4. At 07:00 each day, the Skill starts in an isolated session without interactive user approval. 5. Each scheduled run performs network searches and may write its output to an external service. 6. The recurring act ...[truncated 634 chars]
Remediation
## Remediation Suggestions 1. Make scheduling strictly opt-in and generate a brief on demand by default. 2. Require explicit user confirmation immediately before creating any scheduled task. 3. Display the exact schedule, command, execution identity, destination, and permissions before installation. 4. Add a finite expiration date or execution limit unless the user explicitly requests indefinite operation. 5. Provide commands or documented steps to list, disable, and permanently remove the job. 6. Notify the user after every scheduled execution instead of using an invisible `Delivery: none` configuration by default. 7. Run scheduled jobs with a dedicated least-privilege identity and only the network and document permissions needed for the task. 8. Record auditable execution logs without storing credentials or unnecessary user data.

T09 · Insecure Skill Coding Practices

Error
Location
SKILL.md:365
Finding
Generated Reports Are Written to Hardcoded External Tencent Docs Destinations## Vulnerability Details **File Location**: `SKILL.md`, lines 365–376 **Vulnerability Type**: Unverified external output destination and unauthorized data transmission risk **Risk Level**: High ### Vulnerable Code ```markdown - Delivery: `none` (results are written directly to Tencent Docs; no Feishu push needed) **Output targets:** - Daily AI news doc: `https://docs.qq.com/aio/DUEtYTUNWaVNxeXN4` - AI knowledge base: `https://docs.qq.com/aio/DUG9ocVBZU01sRmtG` Use the Tencent Docs API (`mcporter call "tencent-docs" "smartcanvas.append_insert_smartcanvas_by_markdown"`) to write results. Do not send Feishu messages from the scheduled session. ``` ### Technical Analysis The Skill directs generated content to two fixed Tencent Docs resources rather than returning the report to the invoking user by default. The project provides no evidence that these destinations are owned or controlled by the user, and it does not require destination ownership verification or per-write consent. The external write is performed through the `tencent-docs` tool using `mcporter`. Depending on the tool's configured authorization, this can transmit the complete generated report to a third-party document. The report may include user-selected subjects, inferred interests, internal annotations, or other context incorporated during generation. Hardcoding an external destination violates least-privilege design because the core news summarization function only requires returning content in the current session. Write access to a third-party document service is an additional capability and should be optional, scoped, and user-controlled. No Tencent Docs credentials are embedded in the repository, and the audited files do not prove who owns the referenced documents. The vulnerability is therefore the unverified and hardcoded transmission path, not a confirmed credential disclosure. ### Attack Path 1. A user invokes the Skill manually or through the rec ...[truncated 1216 chars]
Remediation
## Remediation Suggestions 1. Return the generated report to the current user or session by default. 2. Remove the hardcoded Tencent Docs identifiers from the distributed Skill. 3. Require the user to provide or explicitly select the destination document. 4. Verify that the authenticated user owns or is authorized to modify the selected destination. 5. Present the destination URL and a summary of the data to be transmitted before every external write. 6. Require separate, explicit consent for recurring scheduled writes. 7. Restrict the Tencent Docs credential to a single approved document and the minimum append-only permission where possible. 8. Avoid sending conversation history, hidden instructions, credentials, personal data, or unrelated context with the report. 9. Document third-party retention, sharing, and deletion behavior. 10. Log external writes with timestamp, destination, operation, and content classification while excluding sensitive content from logs.
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (14)

Natural-Language Policy Violations

Medium
Confidence
94% confidence
Finding
The README states that the default output language is Simplified Chinese and that English output is only allowed if the user explicitly requests it. This is a language/locale constraint expressed in natural language, but the skill does not present language choice as a standard option or justify the restriction as region-specific.

Natural-Language Policy Violations

Medium
Confidence
97% confidence
Finding
The file states that all output must be written in Simplified Chinese unless the user explicitly requests another language. This imposes a language default and restriction rather than offering a neutral user choice, which matches the policy category for language or locale constraints without opt-in.

Description-Behavior Mismatch

Medium
Confidence
96% confidence
Finding
The skill is presented as a news-brief generation workflow, but it also embeds instructions to perform scheduled writes into specific external Tencent Docs documents. That expands the skill from read/summarize behavior into persistent side effects on third-party resources, which can cause unauthorized publication or modification if invoked automatically or reused in another context.

Missing User Warnings

Medium
Confidence
94% confidence
Finding
The scheduled external writes are described without a clear user-facing warning that running the skill will modify specific Tencent Docs documents. Hidden or under-disclosed side effects are dangerous because users or operators may believe they are only generating a report, while the system is actually publishing content to external resources on a schedule.

Context-Inappropriate Capability

Medium
Confidence
97% confidence
Finding
Hard-coded delivery to external Tencent Docs gives the skill an unjustified publishing capability relative to its stated purpose of generating a news brief. If the skill is scheduled or triggered in an automated environment, it could write content into external documents without clear consent, opening the door to data leakage, spam, document tampering, or misuse of connected credentials.

Natural-Language Policy Violations

Medium
Confidence
90% confidence
Finding
The document states that all selected stories should be mapped into the listed categories unless the user requests otherwise, and the six canonical category labels are defined only in Chinese. This creates a default language constraint rather than offering a neutral language choice or explicit opt-in, which is a natural-language locale policy issue.

Natural-Language Policy Violations

Medium
Confidence
97% confidence
Finding
The template states that all final output must be in Simplified Chinese unless the user explicitly requests another language. This imposes a default language policy rather than offering a neutral language choice or explicit opt-in, which matches the locale/language policy violation criteria.

Natural-Language Policy Violations

Medium
Confidence
95% confidence
Finding
The instruction says the final output language is Simplified Chinese unless the user explicitly requests another language. This imposes a default language choice rather than offering a neutral user choice or opt-in, which matches the locale/language policy violation criteria.

Intent-Code Divergence

Medium
Confidence
91% confidence
Finding
The file first requires publication time to be verified from the source article page itself, then later instructs the skill to use Tavily as a primary discovery and verification method for blocked sites such as Reuters and DeepMind. That creates an inconsistent trust boundary: if the implementation accepts Tavily metadata or snippets instead of opening the canonical article page, old, misdated, or incorrect stories could be included in the brief despite the earlier strict verification rule.

Natural-Language Policy Violations

Medium
Confidence
90% confidence
Finding
The file instructs the skill to use a specific language order ('Chinese first') for multiple sources, which is a natural-language locale constraint. The policy allows language constraints only when the user is given a choice or the restriction is clearly justified as region-specific, which is not stated here.

Natural-Language Policy Violations

Medium
Confidence
90% confidence
Finding
This line directs the skill to search in Chinese first, imposing a locale preference without indicating user choice or a documented regional necessity. That creates a natural-language policy concern under the language/locale rule.

Natural-Language Policy Violations

Medium
Confidence
90% confidence
Finding
The instruction mandates Chinese-first searching for this source, which is a fixed locale behavior. The file does not offer opt-in/opt-out language selection or explain why the constraint is required.

Natural-Language Policy Violations

Medium
Confidence
90% confidence
Finding
This line specifies 'Chinese first' as the search language, creating a mandatory locale preference. Because the document does not provide user choice or a clear policy justification, it falls under the language/locale violation category.

Intent-Code Divergence

Low
Confidence
98% confidence
Finding
The scheduling section says delivery is 'none', implying no outbound delivery action, but immediately states that results are written directly to Tencent Docs via API. Writing results into external documents is itself a delivery/publishing action, so the documentation is internally contradictory about whether output is delivered anywhere.

Static analysis

No suspicious patterns detected.