T08 · Insecure Dependencies
- Location
SKILL.md:24- Finding
Unpinned and Unverified Third-Party MCP Server Installation
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 24-26
Vulnerability Type: Supply-chain exposure through an unpinned, integrity-unverified executable dependency
Risk Level: MediumComplete Code Snippet:
yaml mcp: - name: open-ontologies description: > Oxigraph-backed MCP server providing all onto_* tools. Install: cargo install open-ontologies OR download binary from https://github.com/fabio-rovai/open-ontologies/releasesThe same unsafe installation guidance is repeated at lines 50-52:
markdown **Install:** `cargo install open-ontologies` or download from [GitHub releases](https://github.com/fabio-rovai/open-ontologies/releases)Technical Analysis
The skill instructs users to install and execute the third-party
open-ontologiespackage without pinning the declared skill version (0.5.1), using Cargo's locked dependency resolution, or verifying the downloaded binary with a cryptographic checksum or signature.The generic GitHub releases URL also does not identify an exact release asset or trusted digest. Consequently, the executable installed at audit time can differ from the executable installed later. The package becomes an MCP server through
open-ontologies serveand exposes tools that can read, write, import, ingest, save, and transmit ontology data. Because the server implementation is not included in this project, its actual behavior cannot be verified from the audited artifact.This is a supply-chain weakness rather than evidence that the referenced package is currently malicious.
Attack Path
- An attacker compromises the package registry account, upstream repository, release process, or downloadable release asset.
- The attacker publishes a modified
open-ontologiespackage or binary under the expected package identity. - A user follows the skill's unpinned installation command or downloads the unverified release.
- T ...[truncated 978 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin the package to the intended version and preserve its dependency lock:
bash cargo install open-ontologies --version 0.5.1 --locked - Reference an exact release tag and asset rather than the generic releases page.
- Publish a trusted SHA-256 or stronger digest for each supported asset and require verification before execution.
- Prefer signed release artifacts and document signature verification against a separately distributed, trusted public key.
- Record verifiable source provenance, build instructions, and release attestations such as SLSA provenance where available.
- Run the MCP server with least privilege in a sandbox or container, restricting filesystem access, environment variables, and outbound network connectivity.
- Allow outbound access only when remote pull or push functionality is explicitly required, and apply destination allowlists where practical.
- Update both installation references in
SKILL.mdso they provide the same pinned and integrity-verified procedure.
- Pin the package to the intended version and preserve its dependency lock:
