Detectar riesgo de deserialización insegura
detect_insecure_deserialization_riskAnaliza el código fuente de una herramienta MCP que carga datos serializados (un modelo de IA, un archivo de configuración, un objeto guardado) en busca de funciones que pueden terminar ejecutando código arbitrario al momento de "leer" esos datos: (1) funciones que SIEMPRE reconstruyen objetos arbitrarios sin ninguna variante segura (pickle.load/loads, cPickle, marshal.loads, dill.loads, joblib.load, y unserialize() de PHP); (2) funciones que solo son peligrosas si no se usa su opción segura — yaml.load() sin Loader=yaml.SafeLoader (o yaml.safe_load()), y torch.load() sin weights_only=True; y (3) un método reduce/reduce_ex que ejecuta un comando del sistema al reconstruirse — la firma clásica de un payload malicioso de pickle. Motivada por CVE-2025-45146 (CVSS 9.8, CRÍTICO) en ModelCache, una librería de caché para agentes/LLM que llamaba a torch.load() sobre bytes sin validar; y CVE-2025-32434 (CVSS 9.3), que mostró que ni siquiera weights_only=True bastaba solo en versiones de PyTorch anteriores a la 2.6.0 — por eso esta herramienta trata esa opción como una señal que reduce el riesgo, no como algo que lo elimina. Reconoce un Unpickler restringido (RestrictedUnpickler/find_class) como señal de que ya se tomó una precaución real. Es un análisis estático por patrones de texto (no ejecuta el código) — mismo enfoque que detect_ssrf_risk, detect_path_traversal_risk, detect_command_injection_risk, detect_sql_injection_risk, detect_token_passthrough_risk y detect_hardcoded_secrets_risk. Requiere una llave de acceso válida (usos gratis o créditos) — ver POST /crear-llave.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"codigo": "<codigo>"
},
"name": "detect_insecure_deserialization_risk"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| codigo | Yes | El código fuente de la función/herramienta que deserializa datos, en texto plano. | |
| lenguaje | No | Solo informativo (ej. "python", "javascript", "php") — la detección ya cubre varios lenguajes a la vez, este campo no cambia el resultado. |