Para: cualquiera que opere varias apps web (frameworks mezclados) con un equipo pequeño, y que quiera corregir las vulnerabilidades de dependencias (CVE) de verdad, de una vez. Sin pasos de ataque — solo la práctica de corregir, hacer que las correcciones perduren y seguir vigilando. Para el tipo de incidente que suele desencadenar esto, véase un RCE público descuidado facturado de forma fraudulenta.
La visión de este sitio: los equipos pequeños se mantienen seguros con dos disciplinas
Lo que funciona en un equipo pequeño no es el utillaje vistoso — son dos disciplinas: 1) detección automatizada de cambios (alertar solo de vulnerabilidades nuevas) y 2) local→push→deploy (producción recibe, nunca edita). Este sitio funciona igual: una auditoría de dependencias (pnpm audit) antes de cada despliegue más un cron diario, con push-to-deploy entregando a producción. Montar alertas que sigan funcionando, en lugar de tratarlo como una corrección puntual, es lo más barato que perdura.
Primero, decide las cuatro condiciones de «hecho»
Así evitas dar las cosas por «hechas» demasiado pronto. Decide de antemano: hasta que se cumplan las cuatro, está incompleto.
1. Escanear
poner el estado en números
2. Corregir
corregir en su origen los crít/altos que no son de dev
3. Aislar/delegar
hacer explícito lo no corregible
4. Monitorear
poner detección diaria de cambios
1. Escanear: contar lo que tienes ahora
Primero, ve qué hay dónde, por máquina. Las comprobaciones manuales ad hoc siempre se descuidan.
Autodescubre lockfiles y escanea
composer.lock / package-lock.json / pnpm-lock.yaml y pásalos a diario por un escáner de código abierto (osv-scanner o pnpm audit). Solo lee lockfiles, así que la carga es mínima.Sabe que la gravedad no es un solo número
Excluye el ruido CON una razón registrada, no ignorando
2. Corregir: actualizar la propia versión vulnerable
Una medida temporal que oculta el síntoma y una corrección de la causa real son trabajos distintos. Haz ambos para terminar.
Solo ocultar el síntoma (la causa sigue ahí)
- bloquear solo las peticiones «de aspecto sospechoso» en un proxy inverso
- el síntoma se detuvo, así que lo llamas «resuelto»
- la dependencia vulnerable permanece — el RCE sigue siendo explotable
Corregir la causa (correcto)
- actualiza la dependencia vulnerable a la versión parcheada
- tras actualizar, confirma que la firma desaparece en tus registros
- trata la medida temporal y la corrección real como dos trabajos distintos, haz ambos
Verifica la compilación de los saltos mayores ANTES de producción
A diferencia de un parche, un salto de versión mayor (framework 14→15, un kit de UI 4→6, etc.) conlleva cambios incompatibles. Actualizar sin comprobar y romper la compilación de producción deja el servicio caído. Pon el código editado en un entorno idéntico al de producción (mismo contenedor de versión de Node/PHP) y deja la compilación/comprobación de tipos totalmente en verde antes de hacer push. Resuelve los errores uno a uno (codemods sync→async, cadenas de clases CSS multilínea, un espacio de nombres de tipo global retirado, etc.). Si el contenedor antiguo sigue corriendo, un fallo revierte con cero tiempo de inactividad.
Comprueba que el siguiente despliegue no deshaga la corrección
Una corrección perfecta vale cero si el siguiente despliegue la borra. Este es el error más común.
No hagas commit sobre el árbol de trabajo de producción
Estandariza una sola dirección: local→push→deploy
No confíes en el HTTP 200 como «sano»
curl | grep)?, ¿hay errores nuevos en los registros?, y recorre las rutas dinámicas (basadas en BD, parametrizadas), no solo la página de inicio. Las cachés pueden retrasar el cambio, así que espera o vacíalas primero.3. Aislar/delegar: anotar lo que no puedes corregir
No siempre puedes corregir todo ahora. El truco es no dejar nunca «no se puede corregir / no es mi área / sin uso» en la ambigüedad.
Código huérfano/EOL: aísla ANTES de borrar
Confirma primero que de verdad no está referenciado
Delega explícitamente lo que no puedes corregir
4. Monitorear: poner en marcha la detección diaria de cambios
Ahora, por fin, pon el mecanismo de alertas. Sin él, una corrección que hiciste no te avisará cuando reaparezca.
Alerta de lo NUEVO, no de todo cada día
Compara los resultados del escaneo contra la ejecución anterior (un archivo de estado) y notifica solo cuando aparece un nuevo crítico/alto. El mismo contenido cada día se ignora (fatiga de alertas). Resume en un solo correo (nuevo / resuelto / actual) en un cron diario. Hasta el hosting compartido maneja bien un binario de escáner + cron (la carga es de milisegundos; añade nice para mayor tranquilidad).
Las claves de API y claves SSH que un inventario también encuentra
Corregir CVE de verdad tiende a sacar a la luz también problemas que no son de dependencias. Dos casos habituales: un archivo de secretos dejado en un directorio público (un token antiguo en la raíz web; si vino de una plantilla compartida, todos los sitios tienen el mismo problema) y una clave raíz entregada a un entorno que puede ser comprometido. Ambos crean el patrón «una fuga, todo», así que compruébalos en la misma pasada (cada uno merece su propio análisis a fondo). Para los fundamentos de secretos, véase guardar secretos de forma segura y la lista de base.
Leer a continuación
- CVE-2026-111793 Openwave: una entrada de KEV pese a una puntuación baja
- Ejemplo (día mensual de parches): SAP Security Patch Day de noviembre de 2026 (cuatro fallos con CVSS 10.0)
- Un caso real: CVE-2026-123551: divulgación de tokens de sesión en OpenAM (una actualización más la revocación de sesiones)
- Ejemplo: Aviso de seguridad de Jenkins (28 de octubre de 2026, 15 fallos)
- Decidir: Qué CVE parchear primero: CVSS, EPSS y KEV
- Monitoreo de dependencias: instalar y usar osv-scanner · no quedarse atrás con los CVE
- Incidente: un RCE público descuidado facturado de forma fraudulenta
- Operaciones: producción solo recibe / Git autoalojado vs GitHub
- Base: la lista de base de seguridad
- Incidente: el ransomware de Capcom (2020) (un viejo dispositivo VPN descuidado fue la vía de entrada)
- Herramienta: búsqueda de CVE / KEV (CVSS, EPSS y explotación activa en una sola pantalla)
- Defensa por patrón: vulnerabilidades en la subida de archivos: evitar web shells / RCE desde el diseño