Back to skill

Security audit

News Noon Digest - 新闻午报

Security checks for vulnerabilities and agentic risk

Overview

This skill should be reviewed because it can set up scheduled external message posting while misrepresenting hardcoded sample text as fetched news and claiming QQ delivery that is not implemented.

Install only if you are comfortable configuring a Feishu webhook and an OpenClaw cron job yourself. Treat this as a placeholder: it posts a canned Chinese digest, does not fetch current news, and QQ delivery appears unimplemented, so it should be fixed before being used for real automated news delivery.

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
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Taint TrackingDirect Taint Flow, Variable-Mediated Taint Flow, Credential Exfiltration Chain
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
Findings (11)

Tainted flow: 'req' from os.getenv (line 118, credential/environment) → urllib.request.urlopen (network output)

Critical
Category
Data Flow
Confidence
90% confidence
Finding

Credentials or environment variables flow to a network sink. This is a high-confidence indicator of credential exfiltration.

Content

Scanner excerpt · scripts/fetch_and_digest.py (reported line 125)May include surrounding context.

python
method='POST'
        )
        
        with urllib.request.urlopen(req, timeout=30) as resp:
            result = json.loads(resp.read().decode('utf-8'))
            if result.get("code") == 0:
                print("✅ 飞书推送成功")

Tp4

High
Category
MCP Tool Poisoning
Confidence
95% confidence
Finding

The documented behavior materially differs from the apparent implementation: it claims automatic scheduled execution, real news fetching, and QQ/Feishu delivery, while the analyzed behavior suggests missing scheduling logic, no real QQ delivery, and mostly static content. Such mismatches are dangerous because they mislead users about what the skill actually does, preventing informed consent and masking unimplemented or substituted behavior that could later be changed to something unexpected.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The README states that the skill automatically pushes a noon news digest to QQ and Feishu but does not clearly warn users that content will be sent to external platforms. This weakens informed consent and can lead to unintentional disclosure of user-selected content, account linkage effects, or unexpected outbound messaging.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The example trigger phrases are generic everyday language and can easily overlap with normal user conversation, which may cause the skill to activate unintentionally. In a skill that sends scheduled or external communications, accidental invocation increases the risk of unwanted automation, misconfiguration, or message delivery without clear user intent.

Content

No source excerpt is available for this finding.

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
90% confidence
Finding

The skill declares network and environment-variable dependent behavior but does not explicitly scope or document its required permissions. This creates a trust and review gap: users may install or run the skill without understanding that it can exfiltrate data externally via webhooks or consume sensitive environment configuration.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
88% confidence
Finding

The skill does not prominently warn that it will send generated content to external messaging platforms on a schedule. Automatic outbound posting increases the risk of unintended disclosure, spam, or operational surprises if users do not realize content will be pushed to third-party services without manual review.

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’s description and all user-facing behavior are hard-coded in Chinese, indicating the skill is intended to operate only in that language. The policy requires flagging language/locale constraints when the skill does not offer user opt-in or clearly document a justified region-specific limitation.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

生成的午报正文声明“数据来源:World Monitor、网络聚合”“由 OpenClaw AI 自动整理”,但代码中的新闻内容均为硬编码静态文本,既没有进行网络聚合,也没有实际抓取或整理外部新闻数据。这会让接收者误以为内容来自实时外部来源。

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

函数注释和文档字符串声称该函数会“发送到QQ/通过 OpenClaw 消息接口”,但实际实现仅打印一条提示信息并直接返回 True,没有执行任何 QQ 发送操作。这属于代码文档对实际行为的主动误导,而非单纯信息不完整。

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
78% confidence
Finding

The skill name, description, and example trigger phrases are entirely in Chinese, and the invocation examples imply Chinese-only use. There is no indication that users may choose another language or locale, which can violate language-choice policy when not justified or documented as region-specific.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
93% confidence
Finding

The natural-language content of the skill forces Chinese for the description, setup guidance, and output example. Under the policy, language constraints should be optional or explicitly justified; here there is no opt-in, alternative locale, or documented reason for restricting the skill to Chinese.

Content

No source excerpt is available for this finding.