Back to skill

Security audit

Openclaw Feishu Optimizer

Security checks for vulnerabilities and agentic risk

Overview

This Feishu voice/message helper is purpose-aligned, but it needs review because it can send audio to Google and describes automatic message handling without clear consent or privacy boundaries.

Review before installing in environments with private Feishu conversations or regulated audio. Use it only with explicit user/admin consent for cloud transcription, avoid sensitive audio unless Google processing is acceptable, store outputs only in protected locations, and prefer pinned dependency versions in an isolated Python environment.

Vulnerability Patterns
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • 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)

T08 · Insecure Dependencies

Warning
Location
SKILL.md:37
Finding

Unpinned Third-Party Dependencies Permit Supply-Chain Substitution

Content
View full analysis
Remediation
View remediation
pydub== ``` 2. Generate and enforce cryptographic hashes for every direct and transitive package: ```bash pip install --require-hashes -r requirements.txt ``` 3. Use a locking workflow such as `pip-tools` to resolve transitive dependencies reproducibly: ```bash pip-compile --generate-hashes requirements.in ``` 4. Replace all unpinned installation examples with: ```bash python3 -m pip install --require-hashes -r requirements.txt ``` 5. Prefer the official Python Package Index or an organization-controlled, synchronized repository. If a third-party mirror is required, document its trust assumptions and retain hash verification. 6. Review dependency release provenance and vulnerability advisories before updating locked versions. Apply updates through an explicit review process rather than allowing automatic resolution to the latest release. 7. Install dependencies in an isolated virtual environment under a non-privileged account. Do not run `pip` as `root`. 8. Ensure `config.json` records exact reviewed versions rather than bare package names, or designate the hashed lock file as the authoritative dependency manifest. ]]>
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • 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
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (15)

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The README advertises automatic processing of voice and message content but does not mention privacy implications, user consent, retention, or whether audio/text may be sent to third-party services during recognition. In a messaging-platform skill, this omission is security-relevant because users may process sensitive communications and assume local or safe handling when the documentation gives no warning.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The README shows saving processed results to an output file without warning that recognized speech and message content may contain sensitive or regulated data that will persist on disk. In the context of Feishu messages and voice transcripts, silent persistence increases the chance of data leakage through shared temp directories, backups, logs, or weak file permissions.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The skill explicitly describes automatic voice recognition and broad message handling, and later states that Google Speech Recognition requires network access. That creates a real privacy/security risk because user audio and derived text may be transmitted to third-party services or processed automatically without any consent, retention, or sensitivity warning.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The workflow says the skill parses messages, formats replies, and sends optimized responses automatically, but it provides no warning that user content may be transformed and retransmitted. In a messaging-platform context, this can expose sensitive information, create unauthorized outbound communications, or cause unintended disclosure if automation acts on private conversations.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The manifest declares a fixed top-level language of zh-CN, which is a natural-language locale constraint. Although multiple supported languages are listed for voice recognition later, this file does not state that the overall skill language is user-selectable or opt-in, so it may violate language/locale policy expectations.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The function sends audio content to Google's remote speech recognition service via recognize_google(), but the CLI does not clearly warn users that audio will leave the local machine. This creates a real privacy and data-handling risk, especially if users process sensitive meetings, personal voice notes, or regulated content under the assumption that recognition is local.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
87% confidence
Finding

This plain-text file says the skill is for any 'OpenClaw 用户' and broadly describes usefulness across work communication, content creation, and multilingual exchange, but it does not define specific invocation phrases, contexts, or exclusion conditions. For a promotional skill description, this ambiguity can cause overly broad matching or unintended invocation because the scope is framed in very general everyday terms.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The usage example hard-codes '--language zh-CN', which presents a specific locale as the default behavior without explaining user choice or that other locales are equally selectable. This can violate language/locale policy expectations when a skill appears to prescribe one language setting by default.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
86% confidence
Finding

This plain-text file says the skill is for any 'OpenClaw user' and broadly covers work communication, content creation, and multilingual exchange, but it does not define any specific activation phrases, scope boundaries, or exclusion conditions. In a skill description or promotional text, this kind of broad invocation framing can make it unclear when the skill should activate versus when it should not.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
83% confidence
Finding

The skill description is entirely written in Chinese and presents the interaction as targeted to all users without any opt-in or alternative language option. Under the policy for natural-language violations, forcing a specific language without user choice can be a locale-policy issue unless the regional constraint is clearly justified.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
88% confidence
Finding

The module defaults the language parameter to "zh-CN" and applies Chinese-specific punctuation handling when no user choice is provided. This is a natural-language locale constraint that may violate policy because the skill imposes a specific language/locale by default rather than clearly requiring user opt-in.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
86% confidence
Finding

The recognize_speech function sets the default recognition language to zh-CN, and the CLI also defaults to zh-CN. This imposes a specific locale unless the user overrides it, which can violate language/locale choice expectations when no opt-in is obtained.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
73% confidence
Finding

The file presents the entire skill description in Chinese and does not indicate whether users can choose another language or whether the Chinese-only presentation is a justified locale-specific requirement. For organizational language/locale policy review, this can be a natural-language policy concern when no opt-in or documented regional scope is provided.

Content

No source excerpt is available for this finding.

Vague Triggers

Low
Category
Not specified by scanner
Confidence
78% confidence
Finding

This plain-text promotional file describes the skill in very broad terms such as '飞书体验优化者' and '专为 OpenClaw 在飞书平台上的体验而设计' without defining specific trigger phrases, contexts, or non-applicable cases. That ambiguity could contribute to unintended invocation if this text is used as skill metadata or discovery text.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
84% confidence
Finding

The usage example specifies '--language zh-CN', which implies a fixed language/locale choice in the natural-language guidance. Because the file also claims multilingual support, presenting only a forced Chinese locale without noting that users may choose another language can conflict with language-choice policy expectations.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.