* feat(i18n): add multilingual wiki scaffolding, language switcher, and translation QA pipeline * docs(readme): adopt picoclaw-style multilingual link bar * fix(i18n): repair localized index links and tighten partial-pair QA * ci(i18n): fail on broken markdown links in README/wiki * ci(i18n): add changed-files mode for markdown link checks * i18n(de): use local Argos MT to fill untranslated German sections * i18n(es,fr): fill untranslated sections via local Argos workflow * i18n(ja): fill untranslated sections with scoped local Argos pass * i18n(ko): fill untranslated sections with scoped local Argos pass * fix(i18n): address review feedback --------- Co-authored-by: David Abutbul <David.a@prompt.security>
16 KiB
Exploitability Scoring Methodology
Overview
El sistema de puntuación de la optimización de ClawSec proporciona una evaluación de vulnerabilidad consciente de contexto diseñada específicamente para implementaciones de agentes de IA (OpenClaw/NanoClaw). A diferencia de las puntuaciones genéricas de CVSS que tratan a todos los ambientes por igual, nuestra puntuación considera los patrones únicos de superficie de ataque y uso de los agentes de AI para reducir la fatiga de alerta y priorizar amenazas accionables.
Scoring Levels
TENIDO Nivel ANTE Severity TENIDO Significado
Silencio...
Silencio high ANTE Critical/High ANTE Exploitable en despliegues típicos de agentes, atención inmediata requerida
Silencio medium Silencio Medium Silencio Puede ser explotable dependiendo de la configuración, justifica la investigación
Silencio low Silencio Bajo Silencio Explotación limitada en contexto de agente, baja prioridad
Silencio unknown Silencio Desconocido Silencio Datos insuficientes para evaluar la explotación
Scoring Factors
1. CVSS Base Score (Baseline)
El análisis comienza con la puntuación base CVSS como base:
CVSS ≥ 9.0: Severidad crítica → puntuación inicial high
- CVSS 7.0-8.9: Alta gravedad → puntuación inicial
highCVSS 4.0-6.9: Severidad media → puntuación inicialmediumCVSS 1.0-3.9: Baja gravedad → puntuación iniciallow - No CVSS: → puntuación inicial
unknown
2. Análisis de vectores de ataque (Métricas CVSS)
El analizador analiza los vectores CVSS v2, v3.0 y v3.1 para evaluar:
Network Accessibility
AV:N (Network): Remotamente explotable sobre la red
- AV:A (Adjacent): Requiere acceso a la red local
- AV:L (Local): Requiere el acceso del sistema local
- AV:P (Physical): Requiere acceso físico
Impact on agents: Las vulnerabilidades accesibles a la red son elevadas porque los agentes normalmente funcionan como servicios de red o hacen llamadas externas de API.
Requisitos de autenticación
- PR:N / Au:NONE: No se requiere autenticación → eleva la puntuación
- PR:L / Au:SINGLE: Bajo privilegios requeridos
- PR:H / Au:MULTIPLE: Se requieren altos privilegios → reduce la puntuación
Impact on agents: Los exploits no autenticados son críticos para las API de agente expuesto públicamente.
User Interaction
- UI:N: No se requiere interacción de usuario → eleva la puntuación
- UI:R: Requiere la interacción del usuario → reduce la puntuación
Impact on agents: Los agentes suelen funcionar de forma autónoma, por lo que las vulnerabilidades que requieren interacción con el usuario son menos críticas.
Attack Complexity
- AC:L: Baja complejidad → eleva la puntuación
- AC:M / AC:H: Media / Alta complejidad → neutral o reduce la puntuación
Impact on agents: Las explotaciones de baja complejidad tienen más probabilidades de ser automatizadas y utilizadas en ataques masivos.
3. Tipo de vulnerabilidad (Contexto de despliegue)
ClawSec ajusta las puntuaciones basándose en cómo los tipos de vulnerabilidad afectan las implementaciones de agentes AI:
High-Risk Types in Agent Context
** Ejecución del Código de Revocación (RCE)* *
Score: Always HIGH
Rationale: RCE is critical in agent deployments
Los agentes de AI ejecutan código arbitrario como parte de su función. Las vulnerabilidades RCE permiten a los atacantes secuestrar flujo de ejecución de agentes, exfiltrate credenciales o pivotar a otros sistemas.
*Server-Side Request Forgery (SSRF) *
Score: Elevated to HIGH if CVSS ≥ 6.0
Rationale: SSRF affects agents making external requests
Los agentes suelen llamar a API externas, acceder a servicios internos y buscar recursos remotos. SSRF permite a los atacantes:
- Acceso a los servicios de metadatos de nube interna (AWS IMDSv1, metadatos GCP)
- Pivot a redes internas
- Exfiltrate data through DNS túneling
*Path Traversal / Directorio Traversal *
Score: Elevated to HIGH if CVSS ≥ 6.0
Rationale: Path traversal affects agents with file access
Los agentes leen archivos, ejecutan scripts y administran codebases. Traversal permite:
- Leyendo archivos de configuración sensibles (.env, credenciales)
- Acceso a las teclas SSH, fichas API
- Sobreescribir archivos de sistema crítico
Inyección colectiva**
Score: Always HIGH
Rationale: Command injection is critical in agent deployments
Similar a RCE, los agentes a menudo ejecutan comandos de shell para interactuar con sistemas. La inyección de comandos permite un compromiso completo del sistema.
Medium-Risk Types
*Contaminación de prototipos (Node.js) *
Score: Elevated from LOW to MEDIUM
Rationale: Prototype pollution can escalate in Node.js agents
Muchos marcos de agentes funcionan en Node.js. La contaminación prototipo puede conducir a:
- Pasaje de cheques de autenticación
- Escalada de privilegios
- Denegación del servicio
SQL Injection / NoSQL Injection
Score: Elevated to HIGH if network-accessible and unauthenticated
Rationale: Injection affects agents with database access
Los agentes que almacenan historia de conversación, datos de usuario o resultados de herramientas en bases de datos son vulnerables a ataques de inyección.
Tipos de tinta inferior
*Cross-Site Scripting (XSS) *
Score: Reduced to MEDIUM if not network-accessible
Rationale: XSS has limited impact in headless agents
Los agentes normalmente no renderizan HTML en los navegadores, reduciendo el impacto XSS. Sin embargo, XSS en la gestión de agentes UIs o interfaces de chat sigue siendo una preocupación.
4. Disponibilidad de explotación
Cuando --check-exploits está habilitado, el analizador comprueba URLs de referencia para exploits públicos:
** Indicadores de despliegue:**
- exploit-db.com / exploit-database.com
- packetstormsecurity.com
- github.com/exploit, github.com/poc
- módulos marco metásploit
- URL que contienen "/exploit", "/poc", "/proof-of-concept"
Score Elevation:
low→medium(exploit available)medium→high(exploit available)unknown→medium(exploit available + CVSS ⇩ 0)
Rationale: Las explotaciones públicas reducen la barrera de habilidad para los atacantes y aumentan la probabilidad de explotación automatizada.
Scoring Algorithm
El analizador sigue este árbol de decisión:
1. Parse CVSS score → set baseline (high/medium/low/unknown)
2. Parse CVSS vector → analyze attack characteristics
3. Adjust for attack vector:
- Network-accessible + no auth + no UI → elevate to HIGH
- Local-only access → reduce HIGH to MEDIUM
4. Adjust for vulnerability type:
- Check against agent-specific risk categories
- Elevate or reduce score based on deployment context
5. Check for public exploits (if enabled):
- Elevate score if exploits detected
6. Generate rationale explaining the final score
Ejemplos
Ejemplo 1: Critical RCE (High Exploitability)
{
"cve_id": "CVE-2024-12345",
"cvss_score": 9.8,
"cvss_vector": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"type": "remote_code_execution",
"description": "Unauthenticated RCE in Express.js framework"
}
** Producto de Análisis**
{
"exploitability_score": "high",
"exploitability_rationale": "Critical CVSS score (9.8); remotely exploitable without authentication; RCE is critical in agent deployments"
}
Por qué ALTO: CVSS crítico + red accesible + no auth + RCE tipo.
Ejemplo 2: SSRF en la API de agente (Explotabilidad alta)
{
"cve_id": "CVE-2024-23456",
"cvss_score": 7.3,
"cvss_vector": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L",
"type": "server_side_request_forgery",
"description": "SSRF in webhook handler allows internal network access"
}
** Producto de Análisis**
{
"exploitability_score": "high",
"exploitability_rationale": "High CVSS score (7.3); remotely exploitable without authentication; SSRF affects agents making external requests"
}
Por qué ALTO: SSRF es crítico para los agentes que hacen llamadas de API (la mayoría lo hace). El acceso a la red sin autenticación eleva el riesgo.
Ejemplo 3: Path Traversal with Public Exploit (High Exploitability)
{
"cve_id": "CVE-2024-34567",
"cvss_score": 6.5,
"cvss_vector": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N",
"type": "path_traversal",
"references": [
"https://exploit-db.com/exploits/51234",
"https://nvd.nist.gov/vuln/detail/CVE-2024-34567"
]
}
** Producto de análisis (con --check-exploits):**
{
"exploitability_score": "high",
"exploitability_rationale": "Medium CVSS score (6.5); network accessible; path traversal affects agents with file access; public exploit available (1 source)"
}
Por qué ALTO: Acceso a ficheros Path traversal + agente + exploit público eleva el CVSS medio a alta explotabilidad.
Ejemplo 4: XSS in Agent UI (Medium Exploitability)
{
"cve_id": "CVE-2024-45678",
"cvss_score": 7.1,
"cvss_vector": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:L",
"type": "cross_site_scripting",
"description": "Stored XSS in agent management dashboard"
}
** Producto de Análisis**
{
"exploitability_score": "medium",
"exploitability_rationale": "High CVSS score (7.1); network accessible; XSS has limited impact in headless agents"
}
Por qué MEDIUM: A pesar de la alta CVSS, XSS es menos crítico en implementaciones de agentes (operación sin cabeza). Requiere la interacción del usuario.
Ejemplo 5: Escalada Local de Privilege (Explotabilidad de Medios)
{
"cve_id": "CVE-2024-56789",
"cvss_score": 8.8,
"cvss_vector": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H",
"type": "privilege_escalation",
"description": "Local privilege escalation via symbolic link attack"
}
** Producto de Análisis**
{
"exploitability_score": "medium",
"exploitability_rationale": "High CVSS score (8.8); requires local access"
}
Por qué MEDIUM: A pesar de la alta CVSS, requiere acceso local. Los agentes normalmente se ejecutan en entornos containerizzatos y en caja donde la escalada local tiene un impacto limitado.
Ejemplo 6: Contaminación Prototipo con Exploit (High Exploitability)
{
"cve_id": "CVE-2024-67890",
"cvss_score": 5.3,
"cvss_vector": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N",
"type": "prototype_pollution",
"description": "Prototype pollution in lodash merge function",
"references": [
"https://github.com/exploit/prototype-pollution-poc",
"https://snyk.io/vuln/SNYK-JS-LODASH-1234567"
]
}
** Producto de análisis (con --check-exploits):**
{
"exploitability_score": "high",
"exploitability_rationale": "Medium CVSS score (5.3); remotely exploitable without authentication; prototype pollution can escalate in Node.js agents; public exploit available (1 source)"
}
Por qué ALTO: contaminación prototipo en agentes Node.js + explotación pública + acceso a la red sin auth = alto riesgo a pesar de CVSS moderado.
Usage in ClawSec Workflows
Automated Scoring (NVD Feed)
El flujo de trabajo poll-nvd-cves.yml marca automáticamente nuevos CVEs:
# Workflow step
python utils/analyze_exploitability.py --json --check-exploits < cve-data.json
Los asesores en advisories/feed.json pueden incluir:
{
"id": "CVE-2024-12345",
"severity": "high",
"exploitability_score": "high",
"exploitability_rationale": "Critical CVSS score (9.8); remotely exploitable without authentication; RCE is critical in agent deployments",
"attack_vector_analysis": {
"is_network_accessible": true,
"requires_authentication": false,
"requires_user_interaction": false,
"complexity": "low"
}
}
Manual Analysis
Los investigadores de seguridad pueden analizar CVEs manualmente:
# Basic analysis
echo '{"cve_id":"CVE-2024-12345","cvss_score":7.3,"type":"ssrf"}' | \
python utils/analyze_exploitability.py --json
# With exploit detection
echo '{"cve_id":"CVE-2024-12345","cvss_score":7.3,"references":["https://exploit-db.com/exploits/51234"]}' | \
python utils/analyze_exploitability.py --json --check-exploits
Filtración por Exploitability
Los usuarios pueden filtrar las asesorías mediante la puntuación de explotación:
# Get only high-exploitability advisories
curl -s https://clawsec.prompt.security/feed.json | \
jq '.advisories[] | select(.exploitability_score == "high")'
# Prioritize by exploitability and severity
curl -s https://clawsec.prompt.security/feed.json | \
jq '[.advisories[] | select(.exploitability_score == "high" and .severity == "critical")] | sort_by(.cvss_score) | reverse'
Backfilling Existing Advisories (Mantenimiento histórico)
scripts/backfill-exploitability.sh se mantiene como una utilidad de mantenimiento histórico para el mantenimiento de un repositorio.
No es el camino principal para la generación de asesoramiento normal.
Rutas preferidas:
- Ruta canónica de la CI: ejecutar el flujo de trabajo NVD con init/reset para reconstruir asesorías de NVD y firmar artefactos en tubería.
- Ruta del desarrollador local: ejecute
./scripts/populate-local-feed.sh --forcepara repoblar los piensos locales con contexto de explotación.
Use backfill sólo cuando repara explícitamente el contenido de alimentación heredado que ya existe en-repo.
Community Contributions
Los miembros de la comunidad pueden presentar evaluaciones de la explotación:
- Informe a través de GitHub Edición: Use la plantilla de asesoramiento para informar a CVEs con contexto de explotación
- Análisis automatizado: El flujo de trabajo
community-advisory.ymlmarca automáticamente CVEs reportado por la comunidad - Revisión manual: Los usuarios examinan y aprueban evaluaciones de la explotación
- Feed Update: Los asesores aprobados se añaden al pienso con puntuaciones de explotación
Limitaciones y trabajo futuro
Limitaciones actuales
- Análisis estadístico: El cableado se basa en metadatos CVE, no en el análisis dinámico del tiempo de ejecución
- No hay detección de versiones: No comprueba si las versiones específicas son vulnerables
- ** Clasificación interna**: No considera atenuaciones parciales o defensa en profundidad
- Contexto enviado: No conoce la configuración exacta del agente ni las herramientas desplegadas
Future Enhancements
- Incorporar las puntuaciones de probabilidad EPSS (Exploit Prediction Scoring System)
- KEV Matching: Cross-reference with CISA KEV (Known Exploited Vulnerabilities) catalog
- Agent Profiling: Considerar las capacidades de los agentes desplegados y las API expuestas
- Detección de Mitigación: Comprobar reglas de WAF, sandboxing u otros controles compensatorios
- Escobimiento basado en MLS: Usar el aprendizaje automático para predecir la explotación basada en datos históricos
Referencias
CVSS v3.1 Especificación: https://www.first.org/cvss/v3.1/specification-document
- Guía CVSS v2**: https://www.first.org/cvss/v2/guide
- https://www.first.org/epss/
- CISA KEV: https://www.cisa.gov/known-exploited-vulnerabilities-catalog NVD API: https://nvd.nist.gov/developers/vulnerabilities
Contribución
Mejorar la metodología de puntuación de explotabilidad:
- Enviar casos de prueba: Agregar casos de prueba a
utils/analyze_exploitability.py - Informe Positivos/Negativos falsos: Open GitHub números con ejemplos de CVE
- Ajustes para la preparación de proyectos: Presentar relaciones públicas con racionalidad y ejemplos
- Compartir el contexto del agente: Contribuir patrones de vulnerabilidad específicos del agente
See CONTRIBUTING.md for detailed contribution guidelines.
-...
Maintained by: Prompt Security Licencia: AGPL-3.0 o later ** Última actualización**: 2026-03-01