| Versión | Soportada |
|---|---|
| 0.0.x | ✅ |
Tomamos muy en serio la seguridad de Patto CLI. Si descubres una vulnerabilidad de seguridad, por favor sigue estos pasos:
Las vulnerabilidades de seguridad no deben divulgarse públicamente hasta que hayan sido resueltas.
Envía un correo electrónico a hormigadev7@gmail.com con:
- Asunto:
[SEGURIDAD] Reporte de Vulnerabilidad en Patto CLI - Descripción: Descripción detallada de la vulnerabilidad
- Pasos para Reproducir: Pasos claros para reproducir el problema
- Impacto: ¿Qué podría hacer potencialmente un atacante?
- Solución Sugerida: Si tienes ideas de cómo solucionarlo (opcional)
- Tu Información de Contacto: Para que podamos hacer seguimiento
- Confirmación: Confirmaremos la recepción de tu reporte dentro de 48 horas
- Evaluación: Evaluaremos la vulnerabilidad y determinaremos su severidad
- Actualizaciones: Te mantendremos informado sobre nuestro progreso
- Resolución: Nuestro objetivo es lanzar una solución dentro de 7-14 días para vulnerabilidades críticas
- Crédito: Te acreditaremos en nuestro CHANGELOG y notas de lanzamiento (a menos que prefieras permanecer anónimo)
Patto CLI implementa múltiples capas de protección contra ataques de path traversal:
function sanitizePath(inputPath: string): string {
// Filtra '..' y '.' para prevenir recorrido de directorios
const parts = inputPath
.split('/')
.filter((part) => part !== '..' && part !== '.' && part !== '');
return parts.join('/');
}Todas las entradas de usuario para rutas de archivos son sanitizadas antes de su uso.
Todos los nombres de comandos y opciones son validados:
- Validación de kebab-case: Solo letras minúsculas, números y guiones
- Sin espacios ni caracteres especiales: Previene inyección de comandos
- Sin unicode/acentos: Asegura compatibilidad entre sistemas
function validateKebabCase(value: string): boolean {
return /^[a-z0-9]+(-[a-z0-9]+)*$/.test(value);
}- Creación recursiva de directorios: Usa
fs.mkdirSyncde Node.js conrecursive: true - Verificación de existencia: Siempre verifica si los archivos existen antes de sobrescribir
- Operaciones delimitadas: Todas las operaciones están delimitadas al directorio de trabajo actual
Actualizamos regularmente nuestras dependencias para parchear vulnerabilidades conocidas:
# Verificar vulnerabilidades
npm audit
# Actualizar dependencias
npm update
# Corregir vulnerabilidades automáticamente
npm audit fixLos templates usan reemplazo simple de cadenas con nombres de variables específicos:
{{commandName}}{{name}}{{description}}{{class}}{{scope}}{{folder}}
No es posible ninguna ejecución arbitraria de código a través de los templates.
Las operaciones de git usan execSync con:
- Modo silencioso:
stdio: 'ignore'previene fuga de información - Comandos específicos: Solo se usan
git cloneygit init - Sin entrada de usuario en comandos git: La URL del repositorio está hardcodeada
El registro de plugins modifica plugins.config.ts:
- Prevención de duplicados: Verifica si el import ya existe
- Inserción segura: Usa operaciones de cadenas, no
eval()ni ejecución dinámica de código - Validación: Todos los nombres de plugins son validados antes del registro
Siempre instala desde el registro oficial de npm:
npm install -g patto-cliVerifica el paquete:
npm info patto-cli
# Verifica: publisher, repository, versionActualiza regularmente para obtener parches de seguridad:
npm update -g patto-cliSiempre revisa el código generado antes de hacer commit:
git diffEjecuta Patto CLI solo en:
- ✅ Tu máquina de desarrollo local
- ✅ Pipelines CI/CD confiables
- ❌ Servidores de producción
- ❌ Entornos no confiables
Patto CLI requiere:
- Acceso al sistema de archivos: Para crear y modificar archivos
- Acceso a la red: Para clonar el repositorio del template (solo durante
init) - Sin privilegios elevados: Nunca ejecutes con
sudo
Crítico (CVSS 9.0-10.0)
- Ejecución remota de código
- Bypass de autenticación
- Escalada de privilegios
Alto (CVSS 7.0-8.9)
- Inyección SQL (si aplica)
- XSS (si aplica)
- Exposición de datos sensibles
Medio (CVSS 4.0-6.9)
- Vulnerabilidades CSRF
- Denegación de servicio
- Divulgación de información
Bajo (CVSS 0.1-3.9)
- Fugas menores de información
- Ataques teóricos
| Severidad | Confirmación | Evaluación Inicial | Lanzamiento de Solución |
|---|---|---|---|
| Crítico | 24 horas | 48 horas | 7 días |
| Alto | 48 horas | 5 días | 14 días |
| Medio | 7 días | 14 días | 30 días |
| Bajo | 14 días | 30 días | 90 días |
Las actualizaciones de seguridad se lanzarán como:
- Versión de parche para correcciones de severidad crítica/alta
- Documentadas en CHANGELOG.md con prefijo
[SEGURIDAD] - GitHub Security Advisory para vulnerabilidades críticas
- Avisos de seguridad de npm cuando sea aplicable
Reconoceremos a los investigadores de seguridad que divulguen vulnerabilidades responsablemente:
Última Actualización: 14 de Noviembre de 2025
Versión de la Política: 1.0
¡Gracias por ayudar a mantener seguros a Patto CLI y sus usuarios! 🔒