Back to skill

Security audit

ClawFeed 新闻推送

Security checks for vulnerabilities and agentic risk

Overview

This skill’s news-to-Feishu purpose is clear, but it documents recurring scheduled execution and a fixed Feishu recipient using scripts outside the reviewed package.

Review carefully before installing. Confirm the Feishu recipient, inspect the referenced workspace scripts, and check or remove any crontab entry before allowing automated weekday pushes. Prefer manual runs until the schedule and destination are explicitly configured by you.

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

Error
Location
SKILL.md:25
Finding
Persistent Scheduled Execution Through a Pre-Registered Crontab Entry## Vulnerability Details **File Location**: `SKILL.md`, lines 25-31 **Vulnerability Type**: System persistence through scheduled tasks **Risk Level**: High ### Evidence ```markdown ### 2. Crontab 定时推送 脚本已在 crontab 中注册: ``` ```cron 30 8 * * 1-5 /home/goofy/.openclaw/workspace/scripts/clawfeed-daily.sh ``` ```markdown 每周一至周五 8:30 自动执行。 ``` The documentation states that the script has already been registered in `crontab` and executes automatically at 08:30 every weekday. ### Technical Analysis A crontab entry survives the individual Skill invocation and causes recurring execution under the affected user's account. Scheduled delivery is related to the declared daily news-push functionality, but installing or pre-registering persistence without a documented, explicit opt-in process exceeds the minimum privilege and lifecycle requirements of the task. The scheduled target, `/home/goofy/.openclaw/workspace/scripts/clawfeed-daily.sh`, is outside the audited package. The project contains only `SKILL.md`, so the script's contents, ownership, permissions, integrity, network activity, credential handling, and subsequent modifications could not be verified. This separation also means that the effective behavior may change after the Skill documentation has been reviewed. No evidence establishes that this entry obtains root privileges. Its likely privilege boundary is the account owning the crontab. Nevertheless, it provides recurring cross-session execution with that account's permissions. ### Attack Path 1. The Skill or its associated setup process registers the documented entry in the user's crontab. 2. The entry remains active after the original Skill session ends. 3. At 08:30 each weekday, cron launches `/home/goofy/.openclaw/workspace/scripts/clawfeed-daily.sh`. 4. The external script executes with the permissions and environment available to the crontab owner. 5. If the script or a parent directory is later mo ...[truncated 1113 chars]
Remediation
## Remediation Suggestions 1. Do not pre-install or silently register a crontab entry. 2. Require explicit user opt-in before scheduling and display the exact command, frequency, recipient, and execution identity. 3. Keep the executable script inside the reviewed Skill package rather than referencing an unrelated workspace path. 4. Use a package-relative or securely resolved path rather than the account-specific `/home/goofy/...` path. 5. Ensure the script and its parent directories are writable only by the intended owner. 6. Validate ownership and permissions before creating or executing the scheduled task. 7. Use a uniquely marked crontab block so it can be identified and removed safely. 8. Document commands to inspect, disable, and uninstall the scheduled task. 9. Log executions and failures without recording API keys, recipient tokens, or other sensitive values. 10. Prefer manual execution by default; enable recurring execution only when the user specifically requests it. 11. Pin or verify the integrity of the scheduled script so later replacement cannot silently alter the reviewed behavior. 12. Run the task under a dedicated least-privileged account or constrained service context where feasible.

T09 · Insecure Skill Coding Practices

Warning
Location
SKILL.md:20
Finding
Hardcoded Account-Specific Feishu Recipient May Cause Unintended Disclosure## Vulnerability Details **File Location**: `SKILL.md`, lines 20-22 **Vulnerability Type**: Insecure hardcoded destination configuration **Risk Level**: Medium ### Evidence ```markdown ### 1. 飞书用户 ID 默认推送到当前飞书对话(`user:ou_30597b1b45c505faac65f11983d1276d`),如需修改目标,编辑 `scripts/push-feishu.py` 中的 `TARGET` 变量。 ``` The documentation identifies a fixed Feishu user ID as the default delivery target and instructs users to edit a script variable if they want a different destination. ### Technical Analysis A recipient identifier is not necessarily an authentication secret, but embedding an account-specific destination as the default is unsafe configuration. A user may run the documented workflow without realizing that output will be sent to a destination selected by the package author rather than one explicitly chosen and verified by the user. The referenced `scripts/push-feishu.py` file is absent from the audited project. Consequently, the audit could not verify whether the implementation confirms the recipient, validates tenant membership, prevents accidental cross-account delivery, or actually uses the documented default. This issue becomes more significant in combination with the scheduled task: a mistaken recipient could receive repeated messages without per-run confirmation. ### Attack Path 1. A user adopts the Skill and follows the documented manual or scheduled workflow. 2. The user does not edit the documented `TARGET` value. 3. The associated script uses the hardcoded Feishu identifier as its destination. 4. Generated summaries or other content processed by that script are delivered to the fixed recipient. 5. If scheduled execution is enabled, delivery repeats automatically on weekdays. This path is conditional because the delivery script is not present in the package and its actual behavior could not be inspected. ### Impact Assessment Potential impact is limited to information and messaging accessible thr ...[truncated 539 chars]
Remediation
## Remediation Suggestions 1. Remove the account-specific Feishu user ID from the default configuration. 2. Require the user to provide a recipient explicitly during initial setup. 3. Display the resolved recipient and tenant before the first message is sent. 4. Require confirmation before enabling scheduled delivery. 5. Store recipient configuration separately from executable source code with restrictive file permissions. 6. Validate the recipient format and, where supported, verify that it belongs to the expected Feishu tenant. 7. Provide a dry-run mode that shows the destination and message metadata without transmitting content. 8. Avoid logging recipient credentials, access tokens, or sensitive message content. 9. Include a clear command for changing or clearing the configured recipient.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (3)

Missing User Warnings

Medium
Confidence
95% confidence
Finding
The skill description does not clearly warn that it will transmit content to external destinations, including Feishu and third-party services such as the AI summarization provider and RSS sources. Without explicit disclosure, users may trigger the skill without understanding that data will leave the local environment, creating consent, privacy, and operational risk.

Vague Triggers

Medium
Confidence
95% confidence
Finding
The trigger conditions are broad enough that ordinary user requests such as asking to push news or test a push could activate a workflow that sends messages externally and may configure recurring automation. In a skill that performs outbound delivery to Feishu and relies on scheduled execution, ambiguous activation increases the risk of unintended message sending, accidental spam, or unauthorized persistence via cron-like setup.

Natural-Language Policy Violations

Low
Confidence
93% confidence
Finding
The description states that the AI will generate '中文摘要', which imposes a specific language behavior. The file does not indicate that users can opt into another language or that the Chinese-only output is a documented and justified locale requirement.

Static analysis

No suspicious patterns detected.