Imagen ilustrativa generada con IA
WordPress: falla RCE en All-in-One WP Migration deja expuestos a unos 3,2 millones de sitios
Vulnerabilidad CVE-2026-19949 en All-in-One WP Migration permite RCE. Afecta hasta versión 7.109; actualiza a 7.110. 3,2M sitios siguen expuestos.
Texto generado por inteligencia artificial, publicado sin revisión humana. Transparencia IA
Una vulnerabilidad de alta gravedad en el plugin All-in-One WP Migration and Backup puede explotarse para lograr la ejecución remota de código en un sitio WordPress. El problema está identificado como CVE-2026-19949 y afecta a todas las versiones del plugin hasta la 7.109 incluida.
La corrección está disponible en la versión 7.110, publicada el 20 de agosto. Sin embargo, al 3 de septiembre de 2026, solo el 35 % de las más de 5 millones de instalaciones activas estaba actualizado. Se estima, por tanto, que unos 3,2 millones de sitios siguen expuestos.
La falla afecta al proceso de restauración de archivos .wpress y se debe a una inyección SQL de segundo orden. La explotación combina entradas almacenadas en la base de datos, trackbacks de WordPress, comentarios accesibles mediante la API REST y un archivo de copia de seguridad diseñado para instalar código malicioso.
Versiones vulnerables y gravedad de CVE-2026-19949
El alcance de las instalaciones afectadas está definido con precisión:
- Producto: All-in-One WP Migration and Backup para WordPress;
- Versiones vulnerables: hasta la 7.109 incluida;
- Versión corregida: 7.110;
- Componente afectado: función de importación y restauración de archivos
.wpress.
La ficha de NVD del NIST asigna a la vulnerabilidad una puntuación CVSS v3 de 8,8, con el siguiente vector:
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
La clasificación es CWE-89, relacionada con la neutralización inadecuada de elementos especiales incluidos en un comando SQL. El defecto permite añadir consultas SQL a operaciones ya preparadas por el plugin y recuperar información confidencial de la base de datos.
Los valores CVSS indican impactos elevados en la confidencialidad, integridad y disponibilidad. El ataque puede llevarse a cabo a través de la red, presenta una complejidad baja y no requiere la interacción de un usuario durante su ejecución.
Sin embargo, existe una discrepancia en la clasificación. La descripción de la vulnerabilidad y el análisis de Defiant, la empresa que informó del problema, hablan de un escenario accesible para un atacante no autenticado. En cambio, el vector CVSS contiene PR:L, lo que indica que se requieren privilegios bajos. No existe una aclaración definitiva sobre esta diferencia.
Por qué se trata de una inyección SQL de “segundo orden”
En una inyección SQL tradicional, la entrada maliciosa llega directamente a una consulta vulnerable y se ejecuta dentro del mismo flujo de la solicitud. En este caso, el proceso es más complejo.
Inicialmente, el atacante introduce datos manipulados que WordPress almacena sin convertirlos de inmediato en una consulta peligrosa. La entrada permanece en la base de datos y solo se vuelve ejecutable más adelante, cuando el plugin procesa esos datos durante la creación y restauración de un archivo.
De ahí la definición de inyección SQL de segundo orden: el payload se almacena en una primera fase y se activa posteriormente, dentro de un proceso de aplicación diferente.
All-in-One WP Migration comprime el contenido, la configuración y la base de datos de un sitio en archivos con extensión .wpress. Durante la importación, el plugin debe adaptar las URL y los prefijos de las tablas al servidor de destino. Precisamente esta reescritura del código SQL almacenado convierte la entrada controlada por el atacante en instrucciones ejecutables.
El problema se debe a un escape insuficiente de un parámetro controlable externamente y a la preparación inadecuada de una consulta SQL preexistente. Por tanto, el ataque no consiste simplemente en cargar una copia de seguridad: aprovecha la forma en que el plugin reconstruye la base de datos.
De los trackbacks a la clave secreta del plugin
La cadena descrita por Defiant comienza con el envío de dos trackbacks a un artículo público de WordPress. Cada trackback contiene una barra inversa final y una URL vinculada al payload.
Estos valores se almacenan sin eliminar las barras inversas y sin bloquear las URL. El código permanece inicialmente inactivo. Para completar la fase de inyección SQL, es necesario que un administrador cree un archivo y posteriormente lo importe.
Durante la restauración, el plugin modifica las URL y los prefijos de las tablas presentes en el volcado SQL. Esta operación también procesa el contenido introducido en los trackbacks y lo transforma en SQL válido.
La consulta resultante copia en un comentario el valor de ai1wm_secret_key, la clave utilizada para proteger las distintas fases de la importación. El comentario se aprueba posteriormente y pasa a ser visible públicamente.
En ese momento, el atacante puede recuperar la clave sin autenticación a través del endpoint de la API REST de comentarios. El secreto sustraído permite superar el control previsto por el proceso de importación, que no utiliza la autenticación administrativa habitual de WordPress.
Por tanto, la vulnerabilidad depende de la interacción entre varios componentes: los trackbacks del núcleo, la base de datos, el proceso de restauración del plugin y la API REST de comentarios.
El archivo .wpress conduce a la ejecución de código
Después de obtener la clave, el atacante puede importar un archivo .wpress preparado específicamente. El archivo incluye un must-use plugin malicioso, es decir, código PHP que WordPress carga automáticamente sin requerir la activación habitual de los plugins.
En la siguiente carga de una página, el componente se ejecuta y el atacante obtiene ejecución remota de código. El resultado puede ser el compromiso total de la instalación de WordPress.
Una RCE permite, en función de los privilegios del proceso web, instalar webshells, mantener el acceso al servidor y modificar archivos o configuraciones. También puede exponer los datos almacenados en la base de datos, permitir la alteración del contenido y convertir el sitio comprometido en un punto de apoyo para otras actividades.
La cadena requiere varios pasos e incluye una operación administrativa de copia de seguridad y restauración. Esto no elimina el riesgo: el payload puede permanecer almacenado hasta que el administrador ejecute precisamente esas operaciones.
Actualización urgente y comprobaciones en las instalaciones
La medida correctiva documentada consiste en actualizar a All-in-One WP Migration and Backup 7.110. Toda instalación que utilice la versión 7.109 o una anterior debe considerarse vulnerable.
No se ha indicado ninguna mitigación temporal oficial alternativa. En particular, no existen instrucciones documentadas para neutralizar la falla actuando únicamente sobre los trackbacks, el endpoint REST de comentarios o la importación de archivos .wpress. Por tanto, estos cambios no deben considerarse un sustituto del parche.
Además de comprobar la versión instalada, los administradores deberían buscar posibles indicios compatibles con la cadena descrita:
- trackbacks anómalos que contengan URL inesperadas o barras inversas finales;
- comentarios publicados o aprobados sin una justificación operativa;
- posible exposición del valor
ai1wm_secret_key; - importaciones
.wpressno reconocidas; - presencia de must-use plugins desconocidos;
- archivos PHP, webshells o modificaciones persistentes que no puedan atribuirse a los administradores.
No se han comunicado nombres de archivos, direcciones IP, hashes ni otros indicadores específicos de compromiso. Por ello, las comprobaciones deben centrarse en el historial de importaciones, los registros HTTP, el contenido de los comentarios y el directorio reservado para los must-use plugins.
Sin información sobre CISA KEV ni antecedentes del proveedor
No se ha informado de la inclusión de CVE-2026-19949 en el catálogo Known Exploited Vulnerabilities de CISA. En consecuencia, no se conoce ningún plazo federal asociado a esta vulnerabilidad.
La ausencia de un estado KEV comunicado no demuestra que la falla no se esté explotando en condiciones reales; únicamente indica que no existe esa confirmación operativa específica. Tampoco se han proporcionado datos sobre campañas activas o ataques observados a gran escala.
El nombre del fabricante no se indica explícitamente más allá del producto. Por tanto, no es posible relacionar con fiabilidad este incidente con otros posibles antecedentes recientes del proveedor en el catálogo KEV.
El dato más inmediato sigue siendo la magnitud de la exposición: alrededor de 3,2 millones de instalaciones seguían siendo vulnerables el 3 de septiembre. Para quienes administran un sitio WordPress con este plugin, la prioridad es comprobar la versión e instalar la 7.110.
Fuentes
Este artículo es una reelaboración original basada en las siguientes fuentes.
