[{"data":1,"prerenderedAt":185},["ShallowReactive",2],{"seo-verification":3,"blog-n8n-cve-2026-21877-parche-rce-critico-es":6},{"google":4,"bing":5},"EycwPY2XMyTkVzas3n1ygeNJFGAH513qrMjfDljzsMQ","",{"key":7,"data":8},"blog-n8n-cve-2026-21877-parche-rce-critico-es",{"id":9,"slug":10,"slugs":11,"title":15,"excerpt":16,"readTime":17,"views":18,"isPinned":19,"publishedAt":20,"updatedAt":21,"category":22,"categories":28,"featuredImage":30,"bgImage":31,"posterImage":32,"relatedSolution":33,"intro":36,"sections":37,"ctaTitle":126,"ctaBody":127,"ctaButton":128,"ctaUrl":129,"relatedPosts":130},360,"n8n-cve-2026-21877-parche-rce-critico",{"fr":12,"en":13,"ar":14,"es":10},"n8n-cve-2026-21877-mise-a-jour-urgence","n8n-cve-2026-21877-critical-rce-patch","n8n-cve-2026-21877-تصحيح-ثغرة-rce","n8n CVE-2026-21877: parchea la RCE CVSS 9.9 de urgencia","CVE-2026-21877 permite ejecución remota de código autenticada en n8n (CVSS 9.9). Actualiza a ≥ 1.121.3 y aplica el workaround de scheduling.",10,0,false,"2026-09-18T00:00:00+00:00","2026-09-19T02:00:43+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},8,"Seguridad y monitorización","securite-monitoring","bg-rose-500\u002F10 text-rose-400","security",[29],{"id":23,"name":24,"slug":25,"color":26,"icon":27},null,"\u002Fblog\u002Fcovers\u002Fbg.svg","\u002Fblog\u002Fcovers\u002Fn8n-cve-2026-21877-mise-a-jour-urgence-poster.svg",{"categorySlug":34,"appSlug":35},"automatizacion","n8n","La alerta CERT Canadá AL26-001 publicada el 12 de enero de 2026 identifica tres vulnerabilidades activas en n8n. La más crítica, CVE-2026-21877 (CVSS 9.9), permite a un usuario autenticado ejecutar código arbitrario en el host a través del nodo Git. Cualquier instancia autoalojada sin actualizar está expuesta. Esta guía cubre el procedimiento de parcheo, las verificaciones post-migración y el workaround del bug de scheduling introducido en la versión 2.21.7.",[38,42,53,56,84,88,91,94,123],{"type":39,"title":40,"body":41},"h2","CVE-2026-21877: por qué está justificada la puntuación CVSS 9.9","La vulnerabilidad está clasificada como CWE-434 — subida de archivo de tipo peligroso sin restricciones. El nodo Git de n8n permite, bajo ciertas condiciones, a un usuario autenticado escribir un archivo arbitrario en el sistema de archivos del servidor. Un atacante puede escribir un script en un directorio ejecutado por el proceso n8n y luego activarlo mediante un workflow para lograr ejecución remota de código.\n\nEl vector de ataque es de red, sin interacción adicional del usuario requerida. El alcance cambia (scope: Changed), lo que significa que el impacto va más allá del proceso n8n: la confidencialidad, integridad y disponibilidad del host quedan comprometidas. La puntuación EPSS alcanza el 5,449% (percentil 92), lo que indica una alta probabilidad de explotación activa en 30 días.\n\nLa alerta AL26-001 del Centro Canadiense de Ciberseguridad también cubre CVE-2026-21858 (validación de entrada insuficiente en peticiones webhook, CVSS 10.0 según algunas fuentes) y CVE-2025-68613 (aislamiento insuficiente de expresiones en configuraciones de workflows). Las tres deben abordarse en el mismo ámbito de remediación.",{"type":43,"title":44,"items":45},"ul","Quién está expuesto y en qué rango de versiones",[46,47,48,49,50,51,52],"**Todas las instancias autoalojadas de n8n >= 0.123.0 y \u003C 1.121.3** son vulnerables a CVE-2026-21877 según el advisory de GitHub GHSA-v364-rw7m-3263.","**Las instancias detrás de un proxy inverso no están protegidas**: la vulnerabilidad es autenticada — una cuenta comprometida o un colaborador interno malicioso son suficientes; el perímetro de red no cambia la exposición.","**Tanto los despliegues Docker como npm están afectados**: el vector es el nodo Git, presente en todas las distribuciones de n8n independientemente del método de instalación.","**Las instancias n8n Cloud gestionadas por n8n.io** recibieron el parche sin ninguna acción requerida por el operador.","**CVE-2025-68613 cubre las versiones 0.211.0 a \u003C 1.120.4**: si aún no has alcanzado la 1.120.4, estás expuesto a ambas CVE simultáneamente.","**CVE-2026-21858 afecta a las versiones 1.65.0 a \u003C 1.121.0**: actualizar a 1.121.3 resuelve las tres CVE en una sola operación.","**La puntuación EPSS del 5,449% coloca esta CVE en el percentil 92** de probabilidad de explotación activa, justificando la prioridad del parche sobre el resto del mantenimiento programado.",{"type":39,"title":54,"body":55},"Verificar la versión de tu instancia n8n","Antes de aplicar el parche, identifica la versión exacta en ejecución. Tres métodos según tu contexto de despliegue.\n\n**A través de la interfaz web**: inicia sesión en tu instancia, haz clic en el icono de perfil en la parte inferior izquierda y luego en \"About n8n\". La versión aparece en la ventana modal.\n\n**A través de Docker**: el comando `docker inspect \u003Cnombre-del-contenedor> --format '{{index .Config.Labels \"org.opencontainers.image.version\"}}'` devuelve la versión de la imagen en ejecución. Si el contenedor se inició desde la imagen `n8nio\u002Fn8n:latest`, este valor refleja lo que estaba vigente en el momento del último `docker pull`.\n\n**A través de la API interna**: un `curl http:\u002F\u002Flocalhost:5678\u002Fhealthz` en el host devuelve `{\"status\":\"ok\"}` con la versión en los headers si la instancia está en ejecución.\n\nSi tu versión es inferior a 1.121.3, aplica el procedimiento siguiente sin esperar a la próxima ventana de mantenimiento.",{"type":57,"title":58,"steps":59},"steps","Procedimiento de actualización a n8n ≥ 1.121.3",[60,63,66,69,72,75,78,81],{"title":61,"body":62},"Copia de seguridad de la base de datos y archivos de configuración","Antes de cualquier actualización, guarda el estado actual. Para una instalación Docker Compose, exporta la base de datos SQLite o PostgreSQL según tu configuración:\n\n```bash\n# SQLite (ruta por defecto)\ncp ~\u002F.n8n\u002Fdatabase.sqlite ~\u002F.n8n\u002Fdatabase.sqlite.bak-$(date +%Y%m%d)\n\n# PostgreSQL\npg_dump -U n8n -d n8n > n8n-backup-$(date +%Y%m%d).sql\n```\n\nCopia también tu `docker-compose.yml` y archivo `.env` en un directorio de backup.",{"title":64,"body":65},"Actualizar el archivo docker-compose.yml","Si usas la imagen `n8nio\u002Fn8n:latest`, no se requieren cambios en el archivo `docker-compose.yml`. Si has fijado una versión explícita (por ejemplo `n8nio\u002Fn8n:1.115.0`), actualiza la línea `image`:\n\n```yaml\nservices:\n  n8n:\n    image: n8nio\u002Fn8n:1.121.3\n```\n\nSi quieres seguir la rama estable de larga duración, usar una etiqueta de versión explícita es preferible a `latest` para controlar las ventanas de actualización.",{"title":67,"body":68},"Descargar la nueva imagen","Desde el directorio que contiene tu `docker-compose.yml`:\n\n```bash\ndocker compose pull\n```\n\nEste comando descarga únicamente las capas de la imagen que han cambiado. Con un enlace ascendente de 100 Mbit\u002Fs, cuenta con 30 a 90 segundos según tu caché local.",{"title":70,"body":71},"Detener la instancia actual","```bash\ndocker compose down\n```\n\nEl cierre es ordenado: n8n espera a que terminen las ejecuciones en curso antes de detenerse, a menos que añadas `--timeout 0`. En una instancia con alta carga, es preferible esperar a que los workflows activos terminen antes de ejecutar este comando, o suspender los workflows críticos desde la interfaz.",{"title":73,"body":74},"Reiniciar con la nueva imagen","```bash\ndocker compose up -d\n```\n\nDocker Compose utiliza la imagen recién descargada. El arranque suele tardar de 10 a 20 segundos. El log de inicio debe mostrar la versión 1.121.3 o superior.",{"title":76,"body":77},"Verificar la versión desplegada","```bash\ndocker compose logs n8n | grep -i 'version\\|n8n@'\n```\n\nO a través de la API interna, desde el host:\n\n```bash\ncurl -s http:\u002F\u002Flocalhost:5678\u002Fhealthz\n```\n\nConfirma que la versión mostrada en la interfaz (icono de perfil → About n8n) sea 1.121.3 o superior antes de considerar la actualización completa.",{"title":79,"body":80},"Deshabilitar el nodo Git si no lo utilizas","Para neutralizar el vector de ataque inmediatamente sin esperar la actualización (por ejemplo si no hay ventana de mantenimiento disponible), deshabilita el nodo Git mediante la variable de entorno:\n\n```bash\nN8N_NODES_EXCLUDE='[\"n8n-nodes-base.git\"]'\n```\n\nAñade esta variable a tu archivo `.env` y reinicia la instancia. Esto no es un sustituto de la actualización: aplica el parche tan pronto como sea posible.",{"title":82,"body":83},"Para una instalación npm (sin Docker)","```bash\nnpm update -g n8n\n# O, si usas un gestor de procesos:\npm2 stop n8n\nnpm update -g n8n\npm2 start n8n\n```\n\nVerifica la versión instalada con `n8n --version`. Se recomienda migrar a Docker para nuevas instalaciones — la guía dedicada `n8n-migration-npm-docker-avant-v3` cubre este recorrido en detalle.",{"type":85,"title":86,"body":87},"tip","Endurecimiento post-parche: reducir la superficie de ataque","La actualización corrige la vulnerabilidad conocida, pero varias configuraciones refuerzan la postura de seguridad general de la instancia.\n\n**Restringe los permisos del proceso n8n.** El contenedor no debe ejecutarse como `root`. La imagen oficial utiliza el usuario `node` por defecto desde varias versiones — verifica que tu `docker-compose.yml` no contenga `user: root`.\n\n**Activa la autenticación.** Si tu instancia está expuesta en internet sin autenticación, añade `N8N_BASIC_AUTH_ACTIVE=true` con credenciales fuertes, o coloca la instancia detrás de un proxy que requiera autenticación. CVE-2026-21877 es autenticada, pero existen otros vectores no autenticados en el ecosistema.\n\n**Limita los nodos permitidos.** La variable `N8N_NODES_INCLUDE` permite autorizar solo un subconjunto de nodos. En instancias dedicadas a workflows sin necesidad de acceso Git o al sistema, una lista de inclusión reduce la superficie.\n\n**Audita las cuentas de usuario.** En la interfaz de administración, verifica que cada cuenta activa sea legítima y que las cuentas de prueba o de antiguos colaboradores estén desactivadas.\n\n**Suscríbete a las alertas de seguridad de n8n.** El repositorio de GitHub `n8n-io\u002Fn8n` permite suscribirse a notificaciones de seguridad mediante \"Watch → Security alerts\".",{"type":39,"title":89,"body":90},"Bug de scheduling tras la versión 2.21.7: síntoma y workaround","El issue de GitHub #31100 documenta un comportamiento reportado tras actualizar a la versión 2.21.7: los workflows con disparadores programados (nodo Schedule Trigger) dejan de ejecutarse en su hora, sin ningún mensaje de error visible en los logs.\n\n**Síntoma exacto**: los workflows permanecen en estado «activo» en la interfaz, se muestra el próximo tiempo de disparo programado, pero las ejecuciones no tienen lugar. El historial de ejecuciones no muestra ningún intento fallido — los workflows simplemente no se disparan. Este comportamiento se observa principalmente en despliegues en modo cola (multi-worker), con PostgreSQL, pero también puede afectar a instancias de proceso único.\n\n**Lo que el issue indica sobre el workaround**: en el momento de publicación de este artículo, el issue está marcado como \"Needs Feedback\" por el equipo de n8n y no se ha publicado ningún workaround oficial documentado en el hilo. Varios operadores han reportado que los siguientes enfoques restauraron las ejecuciones programadas en su entorno:\n\n- Desactivar y luego reactivar manualmente cada workflow afectado desde la interfaz (alternancia Active\u002FInactive).\n- Reiniciar el contenedor o servicio de n8n, lo que fuerza la reinicialización de la cola de programación interna.\n- En despliegues en modo cola: reiniciar primero el nodo principal (main), antes que los workers.\n\nEstas acciones no son un fix: el problema puede reproducirse. Monitoriza el issue #31100 para el estado oficial y la versión de corrección.\n\n**Identificación rápida de los workflows afectados**: en la interfaz de n8n, filtra el historial de ejecuciones por disparador «Schedule» y comprueba la ausencia de ejecuciones durante el período esperado. Un workflow que debería haberse ejecutado diez veces desde medianoche sin ningún rastro en el log es una señal clara.",{"type":39,"title":92,"body":93},"Verificaciones post-migración: qué controlar antes de reabrir el tráfico","Una actualización exitosa de n8n se confirma en varios ejes, no solo en la versión mostrada.\n\n**Versión**: la interfaz «About n8n» muestra 1.121.3 o superior. El comando `docker inspect` sobre la imagen en ejecución devuelve el mismo número.\n\n**Integridad de credenciales**: n8n cifra las credenciales con una clave derivada de `N8N_ENCRYPTION_KEY`. Si esta variable no ha cambiado entre versiones, las credenciales existentes están intactas. Abre un workflow que use una conexión externa y verifica que se ejecuta sin errores de descifrado.\n\n**Workflows activos**: en el dashboard, verifica que el número de workflows activos coincide con el estado previo a la actualización. Un workflow que estaba activo y ya no lo está tras el reinicio es una señal de alerta.\n\n**Ejecuciones programadas**: si tu instancia usa nodos Schedule Trigger, espera al próximo tiempo de disparo y confirma la ejecución en el log. Si estás en la versión 2.21.7 de la rama 2.x, consulta la sección anterior sobre el bug de scheduling.\n\n**Logs de inicio**: `docker compose logs n8n --tail 50` debe mostrar un arranque limpio sin excepciones. Los errores de conexión a la base de datos o de descifrado de credenciales aparecen en estas primeras líneas.\n\n**Acceso de red**: si tu instancia está expuesta a través de un proxy inverso, verifica que las rutas `\u002Fwebhook\u002F` y `\u002Fwebhook-test\u002F` respondan correctamente tras la actualización.",{"type":95,"title":96,"headers":97,"rows":103},"comparison","Versiones de n8n: exposición a los CVE de la alerta AL26-001",[98,99,100,101,102],"Versión","CVE-2025-68613","CVE-2026-21858","CVE-2026-21877","Acción requerida",[104,108,111,113,116,120],[105,106,106,106,107],"\u003C 1.120.4","Vulnerable","Actualizar a ≥ 1.121.3",[109,110,106,106,107],"1.120.4 – 1.120.x","Corregida",[112,110,110,106,107],"1.121.0 – 1.121.2",[114,110,110,110,115],"≥ 1.121.3","Sin acción CVE requerida",[117,118,118,118,119],"2.x \u003C 2.21.7","Ver release notes","Consultar release notes 2.x",[121,118,118,118,122],"2.21.7+","Bug scheduling #31100 activo",{"type":39,"title":124,"body":125},"Mantener actualizada tu instancia n8n: la vía con VPS","CVE-2026-21877 ilustra el coste de una instancia autoalojada cuya actualización depende de una ventana de mantenimiento externa. En un VPS con acceso root, `docker compose pull && docker compose up -d` aplica el parche en menos de diez minutos, sin depender de un proveedor para decidir el momento.\n\nEsta autonomía tiene una contrapartida: la vigilancia de advisories de seguridad recae en el operador. Dos fuentes para seguir n8n: el repositorio de GitHub (pestaña Security, notificaciones activables) y las alertas del Centro Canadiense de Ciberseguridad o su equivalente CERT en tu región.\n\nPara profundizar en la configuración de una instancia n8n sólida — instalación inicial, proxy inverso Caddy o nginx, TLS automático y copias de seguridad — consulta la guía \u003Ca href=\"\u002Fblog\u002Finstaller-n8n-vps\">instalar n8n en VPS\u003C\u002Fa>. Si vienes de una instalación npm y estás considerando la migración a Docker antes de pasar a la rama 2.x, la guía \u003Ca href=\"\u002Fblog\u002Fn8n-migration-npm-docker-avant-v3\">migración de npm a Docker antes de v3\u003C\u002Fa> cubre ese recorrido. El patrón de parcheo aplicado aquí es idéntico al documentado para \u003Ca href=\"\u002Fblog\u002Fpostgresql-cve-2026-6471-patch-instances-self-hosted\">CVE-2026-6471 en PostgreSQL\u003C\u002Fa>.","Un VPS con acceso root para aplicar tus parches cuando tú decides","En un VPS de ServOrbit, `docker compose pull && docker compose up -d` se ejecuta en menos de diez minutos. Sin dependencia de un proveedor para la ventana de mantenimiento.","Ver los VPS Cloud","\u002Fvps-cloud",[131,152,168],{"id":132,"slug":133,"slugs":134,"title":138,"excerpt":139,"readTime":140,"views":141,"isPinned":19,"publishedAt":142,"updatedAt":143,"category":144,"categories":148,"featuredImage":30,"bgImage":31,"posterImage":150,"relatedSolution":151},3,"instalar-n8n-en-vps-con-docker",{"fr":135,"en":136,"ar":137,"es":133},"installer-n8n-vps","install-n8n-on-vps-with-docker-complete-2026-guide","تثبيت-n8n-على-vps-مع-docker-دليل-شامل-2026","Instalar n8n en un VPS con Docker: guía completa 2026","Despliegue n8n en VPS con Docker, reverse proxy y HTTPS. Crash V8, 502 nginx, migración de npm a Docker y seguridad de ejecuciones persistidas (advisory agosto 2026).",12,2,"2026-06-05T00:00:00+00:00","2026-09-08T22:00:02+00:00",{"id":141,"name":145,"slug":146,"color":147,"icon":146},"Automatización","automatisation","bg-brand-action\u002F10 text-brand-action",[149],{"id":141,"name":145,"slug":146,"color":147,"icon":146},"\u002Fblog\u002Fcovers\u002Finstaller-n8n-vps-poster.svg",{"categorySlug":34,"appSlug":35},{"id":153,"slug":154,"slugs":155,"title":159,"excerpt":160,"readTime":23,"views":18,"isPinned":19,"publishedAt":161,"updatedAt":162,"category":163,"categories":164,"featuredImage":30,"bgImage":31,"posterImage":166,"relatedSolution":167},344,"n8n-migracion-npm-docker-antes-v3",{"fr":156,"en":157,"ar":158,"es":154},"n8n-migration-npm-docker-avant-v3","n8n-migration-npm-to-docker-before-v3","n8n-migration-npm-to-docker-before-v3-ar","n8n 3.0: migrar de npm a Docker antes de octubre de 2026","n8n 3.0 elimina el soporte de npm y npx en octubre de 2026. Detecta tu modo de lanzamiento, exporta tus flujos y migra a Docker Compose con PostgreSQL antes del plazo.","2026-09-09T00:00:00+00:00","2026-09-09T21:41:07+00:00",{"id":141,"name":145,"slug":146,"color":147,"icon":146},[165],{"id":141,"name":145,"slug":146,"color":147,"icon":146},"\u002Fblog\u002Fcovers\u002Fn8n-migration-npm-docker-avant-v3-poster.svg",{"categorySlug":34,"appSlug":35},{"id":169,"slug":170,"slugs":171,"title":175,"excerpt":176,"readTime":177,"views":178,"isPinned":19,"publishedAt":179,"updatedAt":180,"category":181,"categories":182,"featuredImage":30,"bgImage":31,"posterImage":184,"relatedSolution":30},339,"cve-2026-6471-postgresql-parchear-instancias-self-hosted",{"fr":172,"en":173,"ar":174,"es":170},"postgresql-cve-2026-6471-patch-instances-self-hosted","postgresql-cve-2026-6471-patch-self-hosted-instances","تصحيح-ثغرة-postgresql-cve-2026-6471-الخوادم-الذاتية","CVE-2026-6471 y -14669: parchear PostgreSQL en VPS","Dos fallos críticos de PostgreSQL (13 agosto 2026): acceso de replicación → RCE y heap overflow → RCE. Parchear instancias con apt o Docker.",7,1,"2026-09-08T00:00:00+00:00","2026-09-08T21:59:59+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},[183],{"id":23,"name":24,"slug":25,"color":26,"icon":27},"\u002Fblog\u002Fcovers\u002Fpostgresql-cve-2026-6471-patch-instances-self-hosted-poster.svg",1789783615892]