T08 · Insecure Dependencies
- Location
SKILL.md:8- Finding
Unpinned Third-Party Executable Dependency
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 8-16
Vulnerability Type:T08: Insecure Dependencies
Risk Level: Mediumyaml { "requires": { "bins": ["mcporter"], "skills": ["xpoz-setup"], "network": ["mcp.xpoz.ai"], "credentials": "Xpoz account (free tier) — auth via xpoz-setup skill (OAuth 2.1)", }, "install": [{"id": "node", "kind": "node", "package": "mcporter", "bins": ["mcporter"], "label": "Install mcporter (npm)"}], },Technical Analysis
The Skill declares installation and execution of the third-party npm package
mcporterwithout specifying an exact version, integrity hash, lockfile, or verified package source. Consequently, the code installed at deployment time can differ from the code originally reviewed.This creates a supply-chain risk: if the npm package, a transitive dependency, or its publisher account is compromised, a malicious release could be selected during installation. Malicious package lifecycle scripts could potentially execute during installation, while malicious CLI logic could execute when the documented
mcporter callcommands are invoked.The Skill also delegates OAuth authentication to the external
xpoz-setupSkill. Because that Skill is not included in this project, its authentication behavior and handling of credentials could not be verified in this audit.Attack Path
- An attacker compromises the
mcporternpm package, its publisher account, or a transitive dependency and publishes a malicious version. - The Skill installation process resolves the unpinned package name to the compromised release.
- Malicious code executes through an npm lifecycle script or when the installed
mcporterexecutable is invoked. - The code runs with the privileges of the user or Agent performing the installation.
- Depending on the execution environment, the malicious pac ...[truncated 709 chars]
- An attacker compromises the
- Remediation
View remediation
Remediation Suggestions
- Pin
mcporterto an exact, audited version rather than resolving the latest compatible release. - Use a lockfile and verify the package tarball with a trusted integrity hash.
- Document and verify the expected npm publisher, source repository, and release provenance.
- Disable npm lifecycle scripts during installation where operationally feasible, then explicitly permit only reviewed installation steps.
- Review and pin all transitive dependencies or use a trusted internal package mirror with admission controls.
- Run the dependency with least privilege in a sandbox or container with restricted filesystem, environment-variable, credential, and network access.
- Include
xpoz-setupin the auditable project scope or reference a pinned, independently audited version of that Skill. - Add automated dependency scanning and provenance verification to detect compromised, deprecated, or unexpectedly changed releases.
- Pin
