Back to skill

Security audit

Geo Agentops

Security checks for vulnerabilities and agentic risk

Overview

The skill mostly matches a GEO marketing assistant, but it under-discloses external API/social posting behavior and includes unsafe mutable install guidance.

Review this package carefully before installing. Treat any social publishing feature as public and irreversible unless the implementation clearly previews content and asks for confirmation. Do not follow the README git clone plus pip install path unless you pin a reviewed commit and verify dependencies. Also verify publisher identity, since the artifact uses OpenClaw AI Team branding but this run did not identify it as a trusted @openclaw package.

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
README.md:111
Finding

Unpinned Remote Repository and Dependency Installation

Content
View full analysis
Remediation
View remediation
``` 2. Include the actual dependency manifest in the distributed and audited artifact. Remove the installation command if the project has no external Python dependencies. 3. Pin every direct and transitive dependency to an exact version and cryptographic hash. Install with hash enforcement: ```bash python -m pip install --require-hashes -r requirements.txt ``` 4. Generate a lock file using a reproducible dependency-management process and review all dependency changes before release. 5. Use the official Python Package Index through an explicitly configured index, and disable unexpected supplemental indexes to reduce dependency-confusion risk. 6. Recommend installation in an isolated virtual environment under a non-privileged account: ```bash python -m venv .venv . .venv/bin/activate python -m pip install --require-hashes -r requirements.txt ``` 7. Publish release checksums or signed provenance and instruct users to verify them before installation. 8. Add automated dependency scanning and repository-protection controls, including protected release tags, mandatory review, signed commits or releases, and maintainer multi-factor authentication. ]]>
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Memory PoisoningPersistent Context Injection, Context Window Stuffing, Memory Manipulation
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
Findings (24)

Tp2

High
Category
MCP Tool Poisoning
Confidence
85% confidence
Finding

Mixing characters from multiple Unicode scripts in a single identifier is a common technique to create visually ambiguous tool names.

Content

No source excerpt is available for this finding.

Tp2

High
Category
MCP Tool Poisoning
Confidence
85% confidence
Finding

Mixing characters from multiple Unicode scripts in a single identifier is a common technique to create visually ambiguous tool names.

Content

No source excerpt is available for this finding.

Tp2

High
Category
MCP Tool Poisoning
Confidence
85% confidence
Finding

Mixing characters from multiple Unicode scripts in a single identifier is a common technique to create visually ambiguous tool names.

Content

No source excerpt is available for this finding.

Tp2

High
Category
MCP Tool Poisoning
Confidence
85% confidence
Finding

Mixing characters from multiple Unicode scripts in a single identifier is a common technique to create visually ambiguous tool names.

Content

No source excerpt is available for this finding.

Tp2

High
Category
MCP Tool Poisoning
Confidence
85% confidence
Finding

Mixing characters from multiple Unicode scripts in a single identifier is a common technique to create visually ambiguous tool names.

Content

No source excerpt is available for this finding.

Tp2

High
Category
MCP Tool Poisoning
Confidence
85% confidence
Finding

Mixing characters from multiple Unicode scripts in a single identifier is a common technique to create visually ambiguous tool names.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
87% confidence
Finding

The code is clearly related to overseas market entry and localization, so there is partial alignment with the description’s market-research and localization themes. However, the implemented functionality is substantially narrower than declared. It only supports three concrete operations: risk assessment, market prioritization, and localization-gap analysis, all based on static internal data and simple heuristics. It does not implement competitor analysis, multi-channel traffic optimization, GEO/SEO optimization, AI search optimization, ChatGPT content strategy, B2B marketing, or AI citation insights, even though those are explicitly listed as trigger scenarios and core uses. Therefore, the description overstates the skill’s scope and includes several materially unsupported capabilities, making it a mismatch.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
91% confidence
Finding

The declared description presents a broad strategic assistant for GEO market operations, including new-market research, competitor analysis, localization strategy, and multi-channel growth optimization. The supplied code chunk instead implements a narrowly scoped GEO content scoring engine. It evaluates content quality heuristically (length, data-like patterns, headings, FAQ presence), schema completeness, FAQ quantity, and citation counts, then produces generic optimization suggestions. This is related to GEO optimization in a limited sense, but it does not actually perform the primary declared functions such as researching markets, analyzing competitors, supporting overseas market entry, or generating localization/traffic strategy. Therefore the description materially overstates and misrepresents the code’s actual behavior.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

The README explicitly promotes one-click publishing to third-party platforms such as LinkedIn, Twitter/X, Reddit, Medium, and Quora, but provides no warning about consent, account scope, irreversible posting, or platform policy risks. In an agent/automation context, this can lead users to unintentionally publish AI-generated or sensitive business content to external services, causing data leakage, reputational harm, or account enforcement actions.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The README instructs users to export API keys directly in shell environment variables without any accompanying guidance on secret handling, least privilege, rotation, or avoiding exposure in shared terminals, logs, and screenshots. While common in developer docs, omission of credential-safety guidance increases the chance of accidental key leakage and subsequent unauthorized API use or billing abuse.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The trigger description uses broad activation phrases without clear boundaries, making accidental invocation more likely during ordinary marketing discussions. In a skill that can generate content and publish to external platforms, overbroad triggering increases the risk of unintended workflow execution, data disclosure to third parties, or unexpected posting actions.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The trigger list contains many generic phrases that overlap with normal business and marketing conversation, which can cause the skill to activate when the user did not intend to use it. Given the documented external APIs and publishing workflow, accidental activation meaningfully raises the chance of unnecessary data transfer or unintended outbound operations.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
98% confidence
Finding

The security section states that all operations run only locally, yet the manifest explicitly lists multiple external APIs and publishing destinations. This can mislead users into exposing data, prompts, or business content under a false assumption of local-only processing, which is especially risky in a marketing automation skill that sends content to third-party services.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The trigger list contains broad phrases such as 'AI-powered marketing', 'B2B export inquiry', and platform-specific optimization terms that can match many ordinary marketing requests beyond a narrowly scoped GEO assistant. This can cause unintended invocation, leading the skill to receive user context or influence workflows outside its intended purpose, which is a real scope-control weakness even if not overtly malicious.

Content

No source excerpt is available for this finding.

Context Window Stuffing

Medium
Category
Memory Poisoning
Confidence
80% confidence
Finding

Skill attempts to fill the context window with filler content, displacing legitimate instructions and safety constraints. This can degrade agent performance or bypass safety boundaries.

Content

Scanner excerpt · promotion/GEO-入门指南-掘金版.md (reported line 150)May include surrounding context.

text
发布AI优化内容 → 被AI抓取引用 → 获取询盘数据 → 分析反馈 → 内容迭代
     ↑                                                          ↓
     ← ← ← ← ← ← ← ← ← ← ← ← ← ← ← ← ← ← ← ← ← ← ← ← ← ← ←

每月复盘:哪些内容被 AI 引用了?哪些关键词带来了 AI 询盘?据此迭代内容策略,形成正向循环。

Context Window Stuffing

Medium
Category
Memory Poisoning
Confidence
80% confidence
Finding

Skill attempts to fill the context window with filler content, displacing legitimate instructions and safety constraints. This can degrade agent performance or bypass safety boundaries.

Content

Scanner excerpt · promotion/GEO-入门指南.md (reported line 181)May include surrounding context.

text
AI内容发布 → 被AI抓取引用 → 获取询盘数据 → 分析反馈 → 内容迭代
     ↑                                                          ↓
     ← ← ← ← ← ← ← ← ← ← ← ← ← ← ← ← ← ← ← ← ← ← ← ← ← ← ← ←

每月复盘:哪些内容被 AI 引用了?哪些关键词带来了 AI 询盘?据此迭代内容策略,形成正向循环。

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
89% confidence
Finding

This markdown guide is entirely written in Chinese, including headings, examples, and instructional text, with no indication that the language is optional or region-specific. Under the policy criteria, forcing a specific language without user opt-in is a natural-language policy violation.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

This code file’s natural-language descriptions, command help, and output strings are written exclusively in Chinese, which effectively imposes a specific language/locale on users. The policy for this audit says to flag language or locale constraints unless the skill offers user choice or clearly documents a justified regional limitation, neither of which appears here.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
84% confidence
Finding

Natural-language policy issues include forcing a specific language without user opt-in. Aside from a few product names and code snippets, the skill description is effectively Chinese-only and does not indicate that users may choose another language or that the skill is intentionally region-specific.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
68% confidence
Finding

The manifest description is primarily Chinese while embedding English directive text ('Use when', 'Trigger on'), and the document consistently presents content in fixed languages without stating that users may choose their preferred language. This can be read as imposing a preset language/locale behavior rather than offering explicit language opt-in.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Low
Category
Not specified by scanner
Confidence
94% confidence
Finding

The installation guidance says only OPENAI_API_KEY is needed, but the manifest advertises additional third-party APIs and OAuth-backed publishing integrations. This under-disclosure can cause users to misjudge permission scope and trust boundaries, increasing the chance of accidental credential provisioning or unintended external actions.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
76% confidence
Finding

The FAQ states a prescriptive language policy of prioritizing the target market language, with concrete mappings such as North America to English and Middle East to English plus Arabic. This is a natural-language locale constraint and does not explicitly present it as an optional user choice or opt-in.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
88% confidence
Finding

The FAQ states '目标市场语言' and then prescribes specific languages by region, such as North America→English and Middle East→English+Arabic. This is a natural-language locale policy constraint presented as a fixed rule, without offering the user a language choice or indicating that the selection is optional.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
80% confidence
Finding

FAQ 明确规定“目标市场语言优先”,并将英语描述为北美市场“必选项”,但未说明这是面向特定市场的业务建议还是允许用户按自身语言偏好调整。该表述对语言使用给出强制性要求,缺少用户选择或明确的地域合规限定,构成潜在的语言/locale 政策问题。

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.