Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
Herramientas/GitHubGitHub/studiomeyer-io/mcp-server-attestation
Análisis EstáticoAnálisis de VulnerabilidadesAnálisis de CódigoCriptografíaComando y ControlSeguridad de Cadena de Suministro
GitHubstudiomeyer-io/mcp-server-attestation

mcp-server-attestation

Ver Repositorio

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →

Acerca de

hace 1 díaAún no revisado

Endurecimiento de la cadena de suministro de Capa 2 para servidores MCP — manifiestos de herramientas firmados con Ed25519, atestación de spawn en tiempo de ejecución, saneador de argumentos con denegación por defecto. Protege contra el envenenamiento del marketplace + CVE-2025-69256 + CVE-2025-61591.

Compartir

Parte del StudioMeyer MCP Stack — Hecho en Mallorca 🌴 · ⭐ si lo usas

mcp-server-attestation

npm version npm downloads License Last commit GitHub stars

Endurecimiento de la cadena de suministro de capa 2 para servidores del Model Context Protocol. Manifiestos de herramientas firmados con Ed25519, atestación de spawn en tiempo de ejecución, saneador de argumentos de denegación por defecto.

Respuesta directa a:

  • Envenenamiento del marketplace de OX Security, abril de 2026 — 9 de 11 registros MCP aceptaron servidores maliciosos. La posición publicada de Anthropic: "comportamiento esperado".
  • CVE-2025-69256 — RCE en Serverless Framework MCP mediante inyección de comandos en child_process.exec().
  • CVE-2025-61591 — RCE en Cursor MCP a través de un servidor malicioso instalado por OAuth con secuestro de spawn.

Este paquete proporciona lo que Anthropic decidió no ofrecer: verificación criptográfica de qué herramientas puede exponer un servidor y qué llamadas de spawn puede realizar. Es una dependencia de sustitución directa, no un reemplazo del runtime.

Una nota de nuestra parte

Llevamos dos años construyendo herramientas y sistemas para nosotros mismos. Que este repositorio sea pequeño y tenga pocas estrellas no se debe a que sea nuevo. Se debe a que hace poco que decidimos compartir lo que hemos construido. No es un experimento reciente, es una historia larga con un commit reciente.

Nos encanta construir cosas y compartirlas. No nos gustan las tácticas de redes sociales, los trucos de crecimiento ni perseguir estrellas y seguidores. Por eso este repositorio es pequeño. El código es real, se usa y las incidencias se responden. Juzga por ti mismo.

Si te resulta útil, compartirlo, probarlo y dar tu opinión nos ayuda. Si podría ser mejor, una incidencia es más útil. Si construyes algo con él, cuéntanoslo en [email protected]. Eso de verdad nos alegra el día.

Desde un pequeño estudio en Palma de Mallorca.

Paquetes (npm workspaces)

Instalación

root@kitploit:~
npm install mcp-server-attestation
# CLI:
npm install -g mcp-attest-cli
# Reference MCP server:
npx mcp-attest-demo

Node 20+. Sin dependencias criptográficas externas: usa primitivas Ed25519 de node:crypto.

Inicio rápido del servidor en cinco líneas

root@kitploit:~
import { verifyManifestStrict, attestSpawnStrict, type SignedManifest } from "mcp-server-attestation";
import signed from "./signed/manifest.json" assert { type: "json" };

// 1. At startup: prove the manifest you ship is the manifest you signed.
verifyManifestStrict(signed);

// 2. Before every child_process.spawn:
attestSpawnStrict(signed as SignedManifest, { command, args });

Esa es toda la integración. Dos llamadas a funciones, sin SaaS, sin daemon.

Si prefieres volver a verificar la firma en cada spawn (defensa en profundidad contra que un manifiesto no verificado o sustituido llegue a la compuerta), usa en su lugar la única llamada a prueba de fallos: verifica y luego atesta:

root@kitploit:~
import { attestSpawnVerified, type SignedManifest } from "mcp-server-attestation";
attestSpawnVerified(signed as SignedManifest, { command, args });

Herramientas (servidor de referencia mcp-attest-demo)

Las anotaciones son honestas: attest_sign_manifest y attest_keygen escriben archivos en el disco, por lo que no son de solo lectura, pero no destruyen datos existentes, por lo que destructiveHint se mantiene en false. Consulta docs/THREAT-MODEL.md para ver la tabla de capacidades por herramienta.

CLI

root@kitploit:~
mcp-attest keygen --out-dir ./keys --name prod
mcp-attest sign --manifest manifest.json --private-key keys/prod.key --out signed.json
mcp-attest verify --signed signed.json --pin                  # TOFU pin
mcp-attest verify --signed signed.json --sigstore             # opt-in Rekor cross-ref
mcp-attest inspect --signed signed.json --command /usr/bin/echo --arg "hello"
mcp-attest fingerprint --public-key keys/prod.pub
mcp-attest check-pin --server my-server --signed signed.json

verify sale con código 2 ante una firma incorrecta y con código 3 ante una discrepancia de pin.

Compatibilidad con la especificación MCP

Versión de la especificaciónEstado
2024-11-05analizable en el manifiesto, no es objetivo del servidor de referencia
2025-03-26analizable en el manifiesto, no es objetivo del servidor de referencia
2025-06-18objetivo completo

La librería es agnóstica al transporte. El servidor de referencia es solo stdio.

Modelo de seguridad

  • Trust-on-First-Use es el comportamiento por defecto. La primera vez que verificas un servidor, su clave pública se fija en ~/.mcp-attest/trust.json (anulación: MCP_ATTEST_TRUST_FILE). Las verificaciones posteriores rechazan cualquier clave nueva para el mismo nombre de servidor con TRUST_PIN_MISMATCH. Esto bloquea el vector de actualización maliciosa al estilo Cursor.
  • Sin lista de claves de confianza incluida. Este paquete no actúa como guardián. Si quieres una garantía más sólida, activa --sigstore para contrastar la huella de la clave pública con el registro de transparencia Rekor de Sigstore.
  • Saneador de argumentos de denegación por defecto. shellSafeString bloquea todos los metacaracteres ASCII de shell, NUL, CR, LF, VT, FF, NEL, caracteres de ancho cero, BOM, anulaciones RTL/LTR, aisladores Trojan-Source y confundibles latinos de ancho completo. El comportamiento de lista de permitidos requiere los tipos de regla explícitos regex / enum / prefix / literal.
  • Reglas regex seguras frente a ReDoS. El patrón de una regla está firmado por el autor, pero el valor del argumento lo controla el atacante. El saneador detecta estáticamente los patrones propensos a retroceso (cuantificadores anidados sin límite como ) y se niega a ejecutarlos, por lo que un único argumento manipulado no puede congelar la ruta crítica del spawn. Las reglas también llevan un límite de entrada (4096 por defecto).

Lo que este paquete NO hace (fuera del alcance):

  • Hacer sandbox o contenerizar el proceso del servidor.
  • Endurecimiento del flujo OAuth (build separado de mcp-oauth-shield).
  • Control de tráfico de salida de red.
  • Parcheo automático de servidores existentes.

Pruebas

root@kitploit:~
npm install
npm run typecheck
npm test

El corpus de pruebas incluye fixtures de reproducción de CVE (packages/lib/tests/fixtures/cve-2025-69256-payloads.json, cve-2025-61591-payloads.json). La compilación es una comprobación de regresión: todos los payloads deben bloquearse.

Distribución

  • Publicación en npm mediante GitHub Actions OIDC con --provenance.
  • Servidor de referencia enviado a mcp.so y FastMCP Directory.
  • Librería publicada por separado como mcp-server-attestation.

Acerca de StudioMeyer

StudioMeyer es un estudio de diseño e IA con sede en Palma de Mallorca que trabaja con clientes de todo el mundo. Creamos sitios web personalizados e infraestructura de IA para pequeñas y medianas empresas. Stack de producción sobre Claude Agent SDK, MCP y n8n, con Sentry, Langfuse y LangGraph para la observabilidad y una capa de protección propia.

Licencia

MIT, Copyright 2026 Matthias Meyer (StudioMeyer). Consulta LICENSE.

Descargar herramienta
PaquetePropósito
mcp-server-attestation (packages/lib)Librería: firma/verificación Ed25519, esquema de manifiesto, saneador, atestador de spawn, almacén de confianza TOFU.
mcp-attest-cli (packages/cli)CLI mcp-attest: keygen, sign, verify, inspect, fingerprint, check-pin.
mcp-attest-demo (packages/demo-server)Servidor MCP de referencia (stdio, spec 2025-06-18) que expone 5 herramientas que demuestran la librería.
#NombrereadOnlyHintdestructiveHint
1attest_verify_manifesttruefalse
2attest_inspect_spawntruefalse
3attest_generate_manifest_templatetruefalse
4attest_sign_manifestfalsefalse
5attest_keygenfalsefalse
regex
(a+)+
regex
maxLength
  • Reglas prefix seguras frente a traversal. Las reglas prefix rechazan los componentes de ruta .. por defecto (denyTraversal: true, incluida la forma codificada %2e%2e), por lo que /safe/../../etc/passwd se bloquea aunque cumpla prefix: "/safe/".
  • Verificar y luego atestar. attestSpawnVerified comprueba la firma del manifiesto antes de atestar el spawn en una única llamada a prueba de fallos: úsala en lugar de attestSpawnStrict a menos que hayas sacado la verificación Ed25519 por spawn de un bucle realmente crítico.
  • JSON canónico es la superficie firmada. La reserialización no puede cambiar los bytes firmados.