Back to skill

Security audit

LYRA Coin Launch Manager

Security checks for vulnerabilities and agentic risk

Overview

The skill mostly matches its stated coin-receipt workflow, but it needs review because some scripts can write outside the advertised local folders when given crafted symbols or paths.

Install only in a dedicated workspace, pin or verify the ClawHub CLI instead of using @latest, and do not run the scripts on untrusted receipt JSON or arbitrary symbols until path validation is added. Do not paste wallet private keys or GitHub credentials into this skill; the reviewed package does not need them.

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

T09 · Insecure Skill Coding Practices

Warning
Location
scripts/normalize_starcore_family.py:91
Finding

Unvalidated Symbols Permit Filesystem Path Traversal

Content
View full analysis
Remediation
View remediation
str: symbol = value.strip().upper() if not SYMBOL_RE.fullmatch(symbol): raise ValueError(f"Invalid token symbol: {value!r}") return symbol ``` 2. Apply validation consistently to: - `--symbols` command-line input. - Symbols returned by the Clawnch API. - Keys loaded from receipt and summary JSON files. - Symbols embedded inside individual receipt records. 3. Add a resolved-path containment check immediately before every write: ```python root = state.resolve() destination = (root / f"{symbol}_clawnch_receipt.json").resolve() if root not in destination.parents: raise ValueError("Output path escapes the state directory") ``` 4. Apply the same containment check to bookmark output paths and reject absolute `--bookmark-dir` values if writes are required to remain under the workspace. 5. Reject conflicting symbol values between a receipt object's key and its internal `symbol` field. 6. Add regression tests using values such as `../TARGET`, `A/B`, `A\B`, absolute paths, empty strings, and excessively long symbols. ]]>

T08 · Insecure Dependencies

Warning
Location
SKILL.md:60
Finding

Installation Command Executes a Mutable Third-Party Package Version

Content
View full analysis
Remediation
View remediation
install deepseekoracle/lyra-coin-launch-manager ``` 2. Where supported, pin the package by registry integrity hash or use a lockfile that records the resolved version and integrity metadata. 3. Document the expected publisher, package version, and checksum so operators can verify the artifact before execution. 4. Prefer installing the trusted CLI separately through a controlled dependency-management process, then invoke the already verified local binary. 5. Review new CLI versions and their transitive dependencies before updating the pinned version. ]]>
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
Findings (11)

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

The declared description centers on a Clawnch-focused workflow: pulling launch data from clawn.ch, generating receipt JSON/MD, optional Blockscout/Dexscreener verification, and local bookmarking. The supplied code does not implement that described workflow directly. Instead, it is a wrapper script that orchestrates three STARCORE-specific local modules (normalize_starcore_family, verify_starcore_family, bookmark_starcore_family) over a list of STARCORE symbols, then appends success/failure lines to daily_health.md or another chosen log. There is no visible logic for accessing clawn.ch, handling Clawnch launches, writing receipt JSON/Markdown itself, or performing Blockscout/Dexscreener checks in this chunk. While bookmarking and verification are vaguely related themes, the concrete subject matter and primary purpose are materially different, so this should be flagged as a mismatch.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

High
Category
Not specified by scanner
Confidence
97% confidence
Finding

The script’s behavior is materially outside the stated skill scope: instead of managing generic coin-launch receipts, it orchestrates STARCORE-specific normalize/verify/bookmark modules and rewrites process-global state via sys.argv and sys.path. In an agent skill, this kind of undeclared, hard-coded workflow is dangerous because it can trigger hidden side effects, operate on unintended targets, and evade user or platform expectations about what the skill is supposed to do.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
83% confidence
Finding

The README instructs users to run npx clawhub@latest publish, which fetches and executes the latest package version at runtime instead of a reviewed, pinned release. If the upstream package is compromised or a breaking/malicious version is published, users of this skill could execute attacker-controlled code during publish operations.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding

The install command uses npx clawhub@latest, which resolves and executes the newest package version at runtime rather than a reviewed, fixed version. This creates a supply-chain risk: if the package is compromised or a breaking/malicious update is published, users of the skill may execute untrusted code during installation.

Content

No source excerpt is available for this finding.

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
70% confidence
Finding

Without declared permissions the skill's intent is opaque and cannot be validated.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
84% confidence
Finding

Installing via npx clawhub@latest introduces a supply-chain risk because the fetched package version can change over time and may execute different code than what was originally reviewed. Even though this is only an install instruction in documentation, users following it could pull a compromised or incompatible release without noticing.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
84% confidence
Finding

The docstring presents the file as a generic in-process "normalize → verify → local bookmark chain" component. In practice, the code is hardwired to import and execute STARCORE-family modules, construct STARCORE-specific receipt paths, and append monitor health entries, so the documentation understates and mischaracterizes the actual purpose of the file.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
60% 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 · scripts/bookmark_starcore_family.py (reported line 60)May include surrounding context.

python
def check_dexscreener(addr: str) -> dict[str, Any]:
    code, j = http_json(f"https://api.dexscreener.com/latest/dex/search/?q={addr}")
    if code != 200 or not isinstance(j, dict):
        return {"status": "error", "code": code}
    pairs = j.get("pairs") or []

External Transmission

Medium
Category
Data Exfiltration
Confidence
60% 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 · scripts/verify_starcore_family.py (reported line 49)May include surrounding context.

python
def check_dexscreener(addr: str) -> dict[str, Any]:
    code, j = http_json(f"https://api.dexscreener.com/latest/dex/search/?q={addr}")
    if code != 200 or not isinstance(j, dict):
        return {"status": "error", "code": code}
    pairs = j.get("pairs") or []

Description-Behavior Mismatch

Low
Category
Not specified by scanner
Confidence
86% confidence
Finding

The README states that scripts only call the public Clawnch API and read/write local JSON under state/, implying a narrowly local/network scope. However, nearby documented commands include python scripts/push_github_auto.py and npx clawhub@latest publish, which indicate remote repository/package publishing capabilities beyond that description.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Low
Category
Not specified by scanner
Confidence
83% confidence
Finding

The wording 'Scripts only call the public Clawnch API and read/write local JSON under state/' actively suggests there are no other networked side effects in this repo. That conflicts with the explicitly documented push_github_auto.py and clawhub ... publish commands, which perform additional remote operations.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.