Back to skill

Security audit

morning-radar

Security checks for vulnerabilities and agentic risk

Overview

This skill does what it claims: searches Baidu for configured news topics and pushes a formatted digest to Feishu, with some privacy and localization caveats users should understand.

Install only if you are comfortable sending your chosen search topics to Baidu Qianfan and sending the generated digest through Feishu. Use least-privilege Feishu app permissions, keep the app secret and Baidu key in environment variables or a protected config file, and review any cron schedule before enabling automatic daily messages.

Vulnerability Patterns
  • 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
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
Findings (12)

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill documentation describes external search and Feishu push functionality but does not clearly warn users that their configured queries and the retrieved content will be sent to third-party services. This creates a transparency and privacy risk because users may unknowingly transmit sensitive topics, internal interests, or externally sourced content to Baidu and Feishu.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The file’s natural-language description, usage comments, and runtime messages are entirely in Chinese, and there is no indication that users can select another language or that the skill is intentionally limited to a Chinese-only audience. This creates a locale policy concern because the skill imposes a specific language experience without opt-in or justification.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The file hard-codes Chinese locale and Chinese-language output, including toLocaleDateString('zh-CN'), Chinese titles, labels, and status text. This imposes a specific language/locale on all users without any opt-in or configuration path, which matches the policy-violation category for forced language or locale.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
70% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

Scanner excerpt · lib/push.js (reported line 6)May include surrounding context.

js
*/

export async function getTenantToken(appId, appSecret) {
  const response = await fetch("https://open.feishu.cn/open-apis/auth/v3/tenant_access_token/internal", {
    method: "POST",
    headers: { "Content-Type": "application/json" },
    body: JSON.stringify({ app_id: appId, app_secret: appSecret })

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
85% confidence
Finding

This code sends sensitive application credentials to an external Feishu API endpoint and later transmits message content and recipient identifiers, but there is no user-facing warning, confirmation, or explanatory comment describing these outbound data transfers. For a code file, safety-relevant network operations that handle credentials or user/system data should include some form of disclosure unless clearly covered elsewhere.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
70% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

Scanner excerpt · lib/push.js (reported line 20)May include surrounding context.

js
}

export async function sendMessage(token, openId, message) {
  const response = await fetch("https://open.feishu.cn/open-apis/im/v1/messages?receive_id_type=open_id", {
    method: "POST",
    headers: {
      "Authorization": `Bearer ${token}`,

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
88% confidence
Finding

The manifest states that the skill automatically collects information and pushes it to Feishu, but it does not clearly disclose that user-defined queries and collected results are sent to two external services: Baidu for retrieval and Feishu for delivery. This creates a transparency and data-handling risk, especially for automated scheduled execution where users may not realize external transmission is occurring.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
90% confidence
Finding

The natural-language instructions throughout the file are Chinese-only, which effectively forces a specific language for users reading and configuring the skill. There is no opt-in language choice or statement that the skill is intended only for a Chinese-speaking or region-specific audience.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
78% confidence
Finding

The natural-language strings and comments in this file are Chinese-only, including error messages surfaced by thrown exceptions. If organizational policy requires avoiding forced language without user opt-in, this is a locale/language constraint that is not documented as optional or justified.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
84% confidence
Finding

The natural-language description is written only in Chinese ("晨间AI资讯自动收集与推送工具"), which can indicate a language-specific skill experience without any visible opt-in, alternative locale, or justification in this manifest. Under the policy rule for natural-language violations, forcing a specific language without user choice should be flagged when not clearly documented as region-specific.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
88% confidence
Finding

The manifest's primary description is presented only in Chinese, which can impose a language constraint on users without opt-in or explanation. The policy calls for flagging language or locale restrictions unless the skill offers language choice or clearly documents a justified region-specific limitation.

Content

No source excerpt is available for this finding.

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
80% confidence
Finding

The manifest requires several sensitive credentials, including API keys and an app secret, but provides no warning about secure storage, least-privilege use, or avoiding logging and hardcoding. This increases the chance that operators mishandle secrets during installation or deployment, leading to credential exposure.

Content

No source excerpt is available for this finding.