T08 · Insecure Dependencies
Warning
- Location
- SKILL.md:20
- Finding
- Unpinned Remote MCP Service Generates Security-Sensitive Payment Code<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md`, lines 20-22, 58-72, and 118-135 **Vulnerability Type**: `T08: Insecure Dependencies` **Risk Level**: Medium ### Vulnerable Code ```bash mcporter config add payram --url https://mcp.payram.com/mcp ``` ```bash # Payment creation endpoint (Express) mcporter call payram.snippet_express_payment_route # → /api/pay/create endpoint ready # Next.js billing page mcporter call payram.snippet_nextjs_payment_route # Webhook to fulfill subscriptions mcporter call payram.generate_webhook_handler framework=express # → Handles payment.completed → activate subscription logic # Payout to your team/partners mcporter call payram.generate_payout_sdk_snippet framework=generic-http # Referral program (grow via word of mouth) mcporter call payram.generate_referral_route_snippet framework=express ``` ```bash # Scaffold complete SaaS payment system mcporter call payram.scaffold_payram_app \ language=node \ framework=express \ appName=my-saas-billing \ includeWebhooks=true # Check your project setup mcporter call payram.assess_payram_project # Get go-live checklist mcporter call payram.generate_setup_checklist ``` ### Technical Analysis The Skill instructs users to register a live third-party MCP endpoint and then relies on that endpoint to generate payment routes, webhook handlers, payout integrations, referral functionality, and a complete application scaffold. The remote service is not pinned to an auditable release or immutable artifact. The Skill also provides no integrity verification, response validation, permission restrictions, or mandatory review process for generated output. Consequently, the behavior of these commands can change after the Skill itself has been audited. The repository contains only `SKILL.md`, so the implementation and security properties of the remote MCP tools cannot be inspected locally. This is particularly sensitive because the generated code handles financial transactio ...[truncated 2054 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions 1. Pin the MCP server to an auditable, immutable release rather than relying solely on a mutable hosted endpoint. 2. Publish or reference the exact server source revision and provide reproducible deployment instructions. 3. Use cryptographic signatures or integrity verification for generated artifacts where supported. 4. Display all generated code to the user and require explicit approval before writing, installing, executing, or deploying it. 5. Subject generated payment, webhook, and payout code to manual review and automated security testing. 6. Verify webhook signatures, event identifiers, expected networks, payment amounts, recipient addresses, and replay protection independently of generated code. 7. Require explicit confirmation of payout destinations and prevent remote output from silently selecting or changing recipient addresses. 8. Document the permissions, files, environment variables, and project data available to each remote tool. 9. Run the MCP client and generated code with least privilege, restricting filesystem, network, secret, and deployment access. 10. Avoid invoking `assess_payram_project` until its data-access scope and remote data-handling policy are clearly defined. 11. Maintain reviewed local templates for critical financial workflows so a remote response cannot silently replace trusted payment logic. ]]>
