Back to skill

Security audit

Lark Project / Meegle

Security checks for vulnerabilities and agentic risk

Overview

The skill appears to be a legitimate Meegle project-management helper, but it repeatedly runs a mutable npm package for authenticated read/write operations, so it needs review before installation.

Install only if you trust the npm publisher and are comfortable letting this skill use your Meegle authorization to read and change project data. Prefer a pinned, reviewed CLI version instead of `@latest`, use least-privilege Meegle access, and manually confirm any create/update/comment/workflow/attachment action before it runs against production data.

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

Error
Location
references/cli-guide.md:5
Finding

Unpinned npm Package Is Downloaded and Executed at Runtime

Content
View full analysis
[flags] --format json ``` Representative invocation from `SKILL.md`: ```bash npx @lark-project/meegle@latest project search ``` Authentication operations use the same mutable dependency: ```bash npx @lark-project/meegle@latest auth status --format json ``` ```bash npx @lark-project/meegle@latest auth login --device-code --phase init --host $host --format json ``` ### Technical Analysis The Skill directs the Agent to execute `@lark-project/meegle@latest` through `npx` for nearly every operation. The `latest` npm distribution tag is mutable and does not identify the package version that was reviewed when this audit was performed. When the package is absent from the local npm cache, `npx` can retrieve it from the configured npm registry and immediately execute its entry point. Consequently, the effective executable payload can change without any modification to this Skill. Even if the current package release is legitimate, a compromised maintainer account, malicious future publication, registry compromise, or unintended release can introduce arbitrary code into subsequent Skill runs. This is particularly sensitive because the invoked package handles Device Code authentication, token storage, local attachment paths, signed object-storage URLs, project records, comments, users, and workflow mutations. The remotely resolved npm package was not included in the audited project, so its implementation and transitive dependencies could not be verified. ### Attack Path 1. An attacker compromises the npm publisher account, publication pipeline, package registry, or another component capable of changing the `latest` release of `@lark- ...[truncated 1470 chars]
Remediation
View remediation
[flags] --format json ``` 2. Prefer installing the dependency through a committed lockfile rather than downloading it during each operation: ```bash npm install --save-exact @lark-project/meegle@0.1.1 npm ci ``` 3. Invoke the lockfile-resolved local executable: ```bash ./node_modules/.bin/meegle [flags] --format json ``` 4. Commit `package-lock.json` and enforce lockfile integrity in deployment and CI. Reject dependency changes that are not explicitly reviewed. 5. Audit the resolved package source, lifecycle scripts, CLI entry point, and transitive dependency tree before deployment. 6. Use an approved registry and package allowlist. Where supported, verify package provenance and registry signatures. 7. Disable or tightly control npm lifecycle scripts unless the audited package explicitly requires them. 8. Run the CLI with least privilege in a sandbox that restricts filesystem access, environment variables, network destinations, and child-process execution. 9. Keep authentication storage isolated from unrelated Agent tools and ensure token files have restrictive operating-system permissions. 10. Establish a controlled update process in which new versions are reviewed, tested, pinned, and deliberately promoted rather than automatically selected through `latest`. ]]>
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
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
Findings (190)

Hidden Instructions

High
Category
Prompt Injection
Confidence
70% confidence
Finding

Hidden instructions were detected in comments or invisible text. These could contain malicious directives. Manual review is recommended.

Content

Scanner excerpt · references/rich-text-editor-markdown-syntax.md (reported line 28)May include surrounding context.

md
| 引用块 | `> 文本` | 内部支持嵌套块级元素 |
| 代码块 | ` ```语言 ... ``` ` | 开头栅栏后跟语言标识 |
| 链接 | `[文本](url)` | |
| 图片 | `![描述](url)<!-- 图片uuid -->` | 注释前无空格 |
| 链接预览 | `[文本](url)<!-- linkPreview -->` | 注释前无空格 |
| 分割线 | `---` | |
| 表情 | `:ShortCode:` | 大小写敏感的规范键名 |

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding

The skill metadata installs the package via a floating npm reference rather than a fixed immutable version. This creates a supply-chain risk: a future compromised or malicious package release could be pulled automatically at runtime or install time and executed with the agent's privileges.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
98% confidence
Finding

The documented command uses npx @lark-project/meegle@latest, which fetches the latest published package on demand. If the upstream package is ever hijacked or a bad release is published, agents following this skill could execute attacker-controlled code immediately.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
98% confidence
Finding

This command reference relies on npx with a non-immutable package specifier, allowing whatever version is current at execution time to run. That expands the attack surface to the npm publishing pipeline and makes the behavior non-reproducible and susceptible to supply-chain compromise.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
98% confidence
Finding

The skill instructs execution of a package via npx @lark-project/meegle@latest, which trusts the current npm state at runtime. A malicious update could be executed before any business logic safeguards in the skill apply.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
89% confidence
Finding

This markdown file documents commands that create or modify remote project data, such as workitem create, but it does not include a clear warning that these actions will change user-managed records in Meegle. The file has procedural guidance, yet lacks an explicit disclosure about data modification or the need for caution before executing write operations.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
98% confidence
Finding

The use of @latest in command examples means the skill can execute newly published code without review. In an agent setting, this is dangerous because it turns routine data queries and updates into an implicit remote code execution path through the package registry.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
98% confidence
Finding

This command reference uses dynamic npm resolution instead of a fixed artifact. That exposes users to supply-chain attacks and makes command semantics drift over time as upstream releases change.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
98% confidence
Finding

A floating npx package reference allows unreviewed code changes to be executed automatically. Because this skill can read and modify project data, a compromised package could also exfiltrate tokens, project contents, or manipulate work items.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
98% confidence
Finding

The command invokes an npm package without a fixed version, so future package changes can alter or compromise execution. This is a classic dependency trust issue with direct code execution impact.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
98% confidence
Finding

Because the skill uses npx to fetch code at use time, any compromise of the package publisher or registry could result in immediate execution of malicious code. The risk is amplified because the skill is designed for operational project management actions.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
98% confidence
Finding

This command example executes a non-pinned npm package, creating a supply-chain execution risk. The issue is not merely documentation quality; agent implementations may follow these instructions exactly and run arbitrary updated code.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
98% confidence
Finding

The non-pinned npx invocation means the code executed tomorrow may differ from the code reviewed today. That undermines reproducibility and opens a path for malicious package replacement or compromised releases.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
98% confidence
Finding

The skill repeatedly instructs runtime execution of the latest package version from npm. In a privileged agent workflow, that can convert documentation into an executable supply-chain vulnerability affecting confidentiality and integrity.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
98% confidence
Finding

Fetching and executing @latest code through npx allows external package updates to change behavior or introduce malicious logic without any change to the skill file. That is particularly risky for a tool that can query and mutate enterprise project data.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
98% confidence
Finding

The command depends on an unpinned external npm artifact, so execution is vulnerable to upstream tampering. This exposes the host to arbitrary code execution and potential credential theft if the package supply chain is compromised.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
98% confidence
Finding

Using a floating npx reference in operational guidance creates an avoidable dependency-execution vulnerability. Because the skill may be used automatically, a malicious release could be triggered without human scrutiny.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The attachment section states that the skill obtains signed object-storage URLs and performs direct HTTP upload/download, which can transmit user files and project data over the network. The markdown does not warn users about external data transfer, file sensitivity, or that attachments may leave the local environment.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
98% confidence
Finding

The attachment command documentation still relies on npx @lark-project/meegle@latest, so even file-transfer workflows would execute whatever code is most recently published. A compromised package could intercept signed URLs, file contents, or auth material.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
98% confidence
Finding

This workflow command is described using a dynamically resolved package version, introducing the same supply-chain execution risk. The context is especially sensitive because workflow transitions can change records and business process state.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
98% confidence
Finding

The command can execute unreviewed upstream code because it references the latest package version through npx. In this workflow-management context, a malicious package could both alter data and silently exfiltrate environment secrets.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

The workflow sections describe status transitions, node updates, and rollback actions that can materially alter process state, ownership, or schedules. Although the commands are explained, there is no explicit warning that these actions affect live workflow state and may be difficult to undo.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
98% confidence
Finding

An unpinned npx invocation makes the skill dependent on mutable upstream package state. This is dangerous because users may assume the documented workflow tool is stable and trusted while it can change underneath them.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
98% confidence
Finding

This line continues the pattern of fetch-and-execute from npm without pinning, exposing the system to registry or maintainer compromise. Given the CLI's access to project and user data, the fallout could include unauthorized modifications and data leakage.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
98% confidence
Finding

Dynamic package resolution via npx is a true supply-chain risk here. It allows silent behavior changes and attacker-controlled code execution if the package or its publishing account is compromised.

Content

No source excerpt is available for this finding.