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<![CDATA[ ## Vulnerability Details **File Location**: `references/cli-guide.md:5-10`; repeated throughout `SKILL.md:34-318` and the reference documentation **Vulnerability Type**: Runtime execution of a mutable third-party dependency **Risk Level**: High ### Vulnerable Code ```bash npx @lark-project/meegle@latest <resource> <method> [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
<![CDATA[ ## Remediation Suggestions 1. Replace every use of `@lark-project/meegle@latest` with an exact, reviewed version: ```bash npx --yes @lark-project/meegle@0.1.1 <resource> <method> [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 <resource> <method> [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
Content
| 引用块 | `> 文本` | 内部支持嵌套块级元素 |
| 代码块 | ` ```语言 ... ``` ` | 开头栅栏后跟语言标识 |
| 链接 | `[文本](url)` | |
| 图片 | `![描述](url)<!-- 图片uuid -->` | 注释前无空格 |
| 链接预览 | `[文本](url)<!-- linkPreview -->` | 注释前无空格 |
| 分割线 | `---` | |
| 表情 | `:ShortCode:` | 大小写敏感的规范键名 |
Confidence
70% confidence
Finding
Hidden instructions were detected in comments or invisible text. These could contain malicious directives. Manual review is recommended.

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.

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.

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.

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.

Missing User Warnings

Medium
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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

Missing User Warnings

Medium
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.

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.

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.

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.

Missing User Warnings

Medium
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.

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.

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.

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.

Static analysis

No suspicious patterns detected.