T08 · Insecure Dependencies
- 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 atSKILL.md:85-97
Vulnerability Type: Supply-chain risk through mutable and unreviewed npm dependencies
Risk Level: MediumVulnerable Code
bash npm i -g @tencentcloud/tmeet@latestRelated 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.jsonTechnical Analysis
The documentation instructs users to install
@tencentcloud/tmeetusing the mutablelatestdistribution 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 installdespite the artifact containing nopackage.jsonor lockfile that could establish the intended dependency graph. Similarly, invokingtsxthroughnpxcan 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 asscripts/src/cli.ts...[truncated 1727 chars]- Remediation
View remediation
Remediation Suggestions
- Replace
@latestwith a reviewed, exact package version:bash npm install --global @tencentcloud/tmeet@X.Y.Z - Include the complete implementation, including
package.json, a committed lockfile,scripts/src/cli.ts, schemas, assets, and test fixtures. - Use
npm ciwith a reviewed lockfile instead of unconstrainednpm install. - Declare an exact local version of
tsxand invoke it from the installed dependency tree rather than permittingnpxto download an unspecified runtime package. - Verify package provenance, registry origin, published integrity hashes, maintainers, and transitive dependencies before release.
- Disable dependency lifecycle scripts during installation where compatible:
bash npm ci --ignore-scripts - Run the analyzer with least privilege in an isolated environment that exposes only the required meeting input and output directories.
- Document which credentials and local resources the Tencent Meeting and Lark integrations require, and ensure dependency processes cannot access unrelated secrets.
- Add automated dependency review, lockfile-drift detection, vulnerability scanning, and release provenance verification to the publication workflow.
- Replace
