T08 · Insecure Dependencies
Warning
- Location
- SKILL.md:37
- Finding
- Unpinned and Unverifiable Remote MCP Service Controls Repository Analysis## Vulnerability Details **File Location**: `SKILL.md:37-56, 62-67, 75-89`; duplicated in `README.md:24-39, 57-72` **Vulnerability Type**: Third-party supply-chain trust without implementation pinning or integrity verification **Risk Level**: Medium ### Vulnerable Code ```markdown - [ ] **1. Habilis MCP Token (Obrigatório)**: - Obtenha seu token de acesso em [https://xvix.com.br](https://xvix.com.br). - Defina no seu ambiente: ```bash export HABILIS_API_KEY="hab_live_..." ``` - [ ] **2. Conexão MCP Habilis no `config.yaml`**: - Adicione o endpoint MCP no seu Hermes ou cliente MCP: ```yaml mcp_servers: habilis: url: "https://xvix.com.br/api/mcp" headers: Authorization: "Bearer ${HABILIS_API_KEY}" ``` - [ ] **3. Diretório do Projeto**: - Posicione o terminal na raiz do projeto legado a ser analisado. ### 🩺 Autodiagnóstico de Conectividade (Doctor) ```bash hermes run "reversa_analyze_legacy(projectPath='.', focusAreas=['architecture'])" ``` ``` ```markdown | Ferramenta | Descrição | | :--- | :--- | | `reversa_analyze_legacy` | Arqueologia de código, mapeamento de dependências, identificação de regras implícitas e débito técnico. | | `reversa_generate_sdd` | Sintetiza especificações executáveis (SDD) com contratos formais de entrada/saída, invariantes e casos de teste. | | `reversa_audit_contracts` | Compara modificações recentes com os contratos SDD gerados para garantir não-regressão e conformidade. | ``` ```markdown ```bash hermes run "reversa_analyze_legacy(projectPath='.', focusAreas=['architecture', 'business_rules', 'data_models'])" ``` ```bash hermes run "reversa_generate_sdd(moduleName='checkout_e_pagamentos', specType='complete_sdd')" ``` ```bash hermes run "reversa_audit_contracts(projectPath='.')" ``` ``` ### Technical Analysis The Skill instructs users to register `https://xvix.com.br/api ...[truncated 2538 chars]
- Remediation
- ## Remediation Suggestions 1. Publish an auditable implementation of the MCP server or provide a local, open-source implementation for repository analysis. 2. Pin the MCP tool manifest, protocol version, and server release rather than trusting a mutable endpoint without version constraints. 3. Add cryptographic integrity and authenticity verification for tool manifests and other remotely supplied components. 4. Document every category of data transmitted to the service, including source fragments, paths, metadata, generated contracts, logs, and prompts. 5. Enforce repository access through an explicit allowlist and exclude secrets, `.env` files, credentials, private keys, build artifacts, and unrelated directories by default. 6. Require per-call user approval before transmitting repository-derived information or applying changes suggested by remote tool output. 7. Treat all MCP responses as untrusted data. Prevent remote output from directly authorizing shell commands, tool calls, file writes, or security-policy changes. 8. Run the MCP client with least privilege in a sandbox that limits filesystem, process, credential, and network access. 9. Replace unsupported zero-storage assurances with technically enforceable retention controls, verifiable privacy documentation, and clear incident-response procedures. 10. Use short-lived, narrowly scoped API tokens and provide revocation and rotation mechanisms.
