Back to skill

Security audit

Meeting Analyzer

Security checks for vulnerabilities and agentic risk

Overview

This meeting-analysis skill is purpose-aligned, but it asks users to run mutable, unaudited npm-based tooling against sensitive meeting data.

Review before installing. Use this only in an isolated project or container, avoid confidential meetings unless authorized, pin and verify npm packages before running them, and keep generated reports and screenshots in access-controlled storage.

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
SKILL.md:38
Finding

Unpinned and Unreviewed npm Dependency Execution

Content
View full analysis

Vulnerability Details

File Location: SKILL.md:38, with related execution instructions at SKILL.md:85-97
Vulnerability Type: Supply-chain risk through mutable and unreviewed npm dependencies
Risk Level: Medium

Vulnerable Code

bash
npm i -g @tencentcloud/tmeet@latest

Related installation and execution instructions:

bash
# 1. Install dependencies in the project directory
npm install

# 2. Run analysis using the real CLI
npx tsx scripts/src/cli.ts analyze "https://meeting.tencent.com/..."

# 3. Analyze with a local video
npx tsx scripts/src/cli.ts analyze "https://xxx.feishu.cn/minutes/..." --video ./recording.mp4 -o ./output

# 4. Detect only the link platform
npx tsx scripts/src/cli.ts detect "https://meeting.tencent.com/..."

# 5. Mock mode
npx tsx scripts/src/cli.ts analyze mock --mock --mock-path assets/examples/sample-tencent.json

Technical Analysis

The documentation instructs users to install @tencentcloud/tmeet using the mutable latest distribution tag. The package version resolved by this command can change after the Skill has been reviewed, so the code ultimately executed is not fixed to an audited release.

The instructions also use npm install despite the artifact containing no package.json or lockfile that could establish the intended dependency graph. Similarly, invoking tsx through npx can cause npm to retrieve and execute a package at runtime when no verified local copy is installed.

npm package installation and CLI execution can run package code with the permissions of the invoking user. This includes lifecycle scripts where enabled and the code of the installed command itself. The absence of exact version pins, integrity information, a lockfile, and the referenced local implementation prevents reproducible review of the effective executable payload.

The audited package contains only SKILL.md. Referenced files such as scripts/src/cli.ts ...[truncated 1727 chars]

Remediation
View remediation

Remediation Suggestions

  1. Replace @latest with a reviewed, exact package version:
    bash
    npm install --global @tencentcloud/tmeet@X.Y.Z
    
  2. Include the complete implementation, including package.json, a committed lockfile, scripts/src/cli.ts, schemas, assets, and test fixtures.
  3. Use npm ci with a reviewed lockfile instead of unconstrained npm install.
  4. Declare an exact local version of tsx and invoke it from the installed dependency tree rather than permitting npx to download an unspecified runtime package.
  5. Verify package provenance, registry origin, published integrity hashes, maintainers, and transitive dependencies before release.
  6. Disable dependency lifecycle scripts during installation where compatible:
    bash
    npm ci --ignore-scripts
    
  7. Run the analyzer with least privilege in an isolated environment that exposes only the required meeting input and output directories.
  8. Document which credentials and local resources the Tencent Meeting and Lark integrations require, and ensure dependency processes cannot access unrelated secrets.
  9. Add automated dependency review, lockfile-drift detection, vulnerability scanning, and release provenance verification to the publication workflow.
Vulnerability Patterns
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (7)

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill retrieves meeting transcripts and produces JSON, Markdown, HTML, drawio files, and optional screenshots on disk, but the description does not prominently warn users that highly sensitive business or personal meeting content will be fetched, processed, and stored locally. In a meeting-analysis skill, that omission materially increases the risk of inadvertent privacy, compliance, and data-retention violations.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The activation guidance includes broad, everyday phrases like '分析这场会议' and '这个会议讲了什么', which can cause the agent to invoke a high-privilege skill in situations where the user did not clearly consent to fetching external meeting data or generating persistent reports. In this skill's context, mistaken invocation is more dangerous because it may retrieve sensitive transcripts from Tencent/Feishu and write derived artifacts to disk.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
70% confidence
Finding

npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
70% confidence
Finding

npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
70% confidence
Finding

npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
70% confidence
Finding

npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
83% confidence
Finding

The summary and the rest of the skill documentation present instructions and usage in Chinese only, with no indication that the user can choose another language or that the skill is intentionally restricted to a Chinese-speaking audience. This can violate language/locale policy where tools should not force a specific language without opt-in or justification.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.