Back to skill

Security audit

Competitor Show Tracker

Security checks for vulnerabilities and agentic risk

Overview

The skill's runtime behavior is mostly disclosed and purpose-aligned, but its install instructions use an unverified personal namespace and mutable source checkout that users should review before installing.

Before installing, verify that the @weilun88313 package is officially controlled by LensmorOfficial, prefer a pinned reviewed version or commit with a checksum, and only run the skill if you are comfortable sending competitor names to Lensmor and having successful searches consume credits and update the API-key owner's HubSpot last_search_date after explicit approval.

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:55
Finding

Unpinned and Inconsistently Namespaced Skill Installation Sources

Content
View full analysis

Vulnerability Details

File Location: README.md, lines 55–64
Vulnerability Type: Supply-chain exposure through unverified and unpinned installation sources
Risk Level: Medium

Vulnerable Code

bash
## Install

```bash
openclaw skills install @weilun88313/competitor-show-tracker --acknowledge-clawhub-risk

Source install:

bash
git clone https://github.com/LensmorOfficial/trade-show-skills.git
cp -r trade-show-skills/competitor-show-tracker ~/.openclaw/skills/
text

### Technical Analysis

The documented installation methods do not pin an immutable package version, Git commit, integrity digest, or cryptographic signature. The registry command also uses the personal namespace `@weilun88313`, while the repository and stated project identity use `LensmorOfficial`. This identity mismatch makes it harder for users to verify that both distribution channels are controlled by the same trusted publisher.

The registry installation additionally requires `--acknowledge-clawhub-risk`, indicating that a platform safety warning must be bypassed or explicitly accepted. The source installation clones the repository’s current default branch, so its effective contents may change after this audit without any corresponding change to the documented command.

No malicious package or repository content was observed in the audited artifact. The vulnerability is the absence of controls ensuring that future installations reproduce the reviewed Skill.

### Attack Path

1. An attacker compromises, acquires, or impersonates the registry namespace or upstream repository.
2. The attacker publishes a modified Skill under the same mutable package name or updates the repository’s default branch.
3. A user follows the README and installs the latest available content without verifying a version, commit, signature, or checksum.
4. OpenClaw loads the substituted Skill instructions as trusted operational content.
5. Th
...[truncated 833 chars]
Remediation
View remediation

Remediation Suggestions

  1. Publish the Skill under a verified organization namespace consistent with the declared LensmorOfficial identity.
  2. Pin registry installations to an immutable, reviewed version rather than implicitly installing the latest release.
  3. Pin source installations to a specific audited Git commit or signed release tag:
    bash
    git clone https://github.com/LensmorOfficial/trade-show-skills.git
    cd trade-show-skills
    git checkout --detach AUDITED_COMMIT_HASH
    
  4. Publish a SHA-256 checksum or cryptographic signature for each release and document verification before copying the Skill into the OpenClaw directory.
  5. Enable signed commits and protected release tags, and publish provenance linking the registry package to the corresponding repository commit.
  6. Remove the risk-acknowledgment requirement once publisher verification and package review requirements are satisfied. If it remains necessary, explain the specific warning and residual risks rather than encouraging users to accept it without verification.
  7. Run installed Skills with least privilege: expose only the required LENSMOR_API_KEY, restrict network access to the documented Lensmor HTTPS host, and deny unrelated filesystem, process-execution, and environment-variable access.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • System Prompt LeakageDirect Leakage, Indirect Extraction, Tool-Based Exfiltration
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
Findings (7)

Direct Prompt Extraction

High
Category
System Prompt Leakage
Confidence
85% confidence
Finding

Skill contains instructions that could directly expose system prompts, internal rules, or hidden instructions to users or external parties.

Content

Scanner excerpt · SKILL.md (reported line 240)May include surrounding context.

md
| Budget decision needed | Run `trade-show-budget-planner` for the top-ranked event |
| Want full competitor booth analysis | Run `pre-show-competitor-analysis` |

## Output Rules

1. All URLs formatted as `[text](url)` — never bare links
2. Never output the value of `LENSMOR_API_KEY`

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% 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 · README.md (reported line 57)May include surrounding context.

md
- Lensmor API key using the current `sk_` format
- `LENSMOR_API_KEY` configured in the OpenClaw environment
- [Lensmor API documentation](https://api.lensmor.com/?utm_source=github&utm_medium=skill&utm_campaign=competitor-show-tracker)

Do not paste API keys into prompts, examples, issues, or logs.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
85% confidence
Finding

The description lists natural-language trigger examples like "Which shows are my competitors at?" in multiple languages, but does not define any boundaries, exclusions, or context for when the skill should activate. This can overlap with ordinary competitive-research requests and may cause unintended invocation because the trigger scope is not explicitly constrained.

Content

No source excerpt is available for this finding.

Autonomous Decision Making

Medium
Category
Excessive Agency
Confidence
75% confidence
Finding

Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.

Content

Scanner excerpt · SKILL.md (reported line 68)May include surrounding context.

md
An empty result does not consume credits. Each additional page is a separate request and can consume another 50 credits when it returns results.

Before calling the endpoint, state the maximum first-page cost as `number of competitors × 50 credits` and ask the user to approve both the credit use and HubSpot activity record. Do not proceed without confirmation.

### Step 4: Fetch Events per Competitor

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The example output states that successful lookups will update HubSpot last_search_date, introducing a CRM write side effect that is unrelated to the skill’s stated purpose of ranking competitor trade shows. Hidden or weakly justified writebacks are dangerous because users may invoke a read-oriented intelligence tool without realizing it mutates business records, creating audit, integrity, and consent issues.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

CRM writeback capability is not justified by the competitor show tracking use case described in the metadata and example, so it represents unnecessary privilege and functionality creep. Over-broad write access increases the blast radius of mistakes or abuse, allowing an ostensibly analytical skill to alter customer systems and records without a clear business need.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
67% confidence
Finding

The manifest description embeds example prompts in several specific languages, which may imply fixed locale handling without clarifying that the user may choose their preferred language. Because there is no explicit statement offering language choice or opt-in, this may conflict with language/locale policy expectations.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.