All in One SEO publicó el 1 de octubre de 2026 la corrección de una vulnerabilidad que no requiere estar autenticado. WPScan, que coordinó el reporte, dice que publicará el código de la prueba de concepto el 21 de octubre de 2026. Quedan ocho días.
La corrección es la versión 5.0.2.1. La trampa está en que la 5.0.2, publicada nueve días antes, también traía una línea de seguridad en su registro de cambios —pero para otro fallo distinto—, así que un sitio que actualizó a finales de septiembre y se quedó ahí sigue expuesto al que tiene fecha marcada.
El plugin declara «2+ million» instalaciones activas en el directorio de WordPress, que no publica una cifra exacta. Lo que sigue es lo que dice cada registro primario, en qué se contradicen entre ellos, y la comprobación de cinco minutos que te dice si esto va contigo.
Qué ha pasado
En los tres primeros días de octubre de 2026 se publicaron tres registros CVE sobre All in One SEO. Dos describen la ejecución de shortcodes sin autenticación; el tercero, un fallo de scripting que necesita a un administrador con sesión iniciada para dispararse. Los tres se leyeron el 13 de octubre de 2026 en el servicio de registros del programa CVE.
El que lleva una fecha límite encima es CVE-2026-19856, publicado por WPScan el 2 de octubre de 2026 a las 18:25 UTC y reservado el 14 de agosto de 2026. El aviso de WPScan se titula «All in One SEO < 5.0.2.1 – Unauthenticated Arbitrary Shortcode Execution via Search Query» y termina con la frase que pone el reloj en marcha: «The PoC will be displayed on October 21, 2026, to give users the time to update». El aviso acredita a Jakub Herman como descubridor y hoy no muestra código de explotación.
Roger Montti informó de los dos fallos en Search Engine Journal el 12 de octubre de 2026, que es como la historia llegó al sector: diez días después de que aparecieran los registros y nueve antes de que aparezca el código.
Qué dicen exactamente los registros
Los tres registros no son intercambiables, y las diferencias entre ellos son la razón de ser de este artículo. Cada cita de abajo sale del propio registro CVE, leído el 13 de octubre de 2026.
CVE-2026-19856 (autoridad: WPScan, 6,5 medio, CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N) dice que el plugin «does not correctly determine which shortcodes are present in content derived from user input» antes de decidir cuáles elimina, de modo que un usuario sin autenticar puede ejecutar cualquier shortcode registrado. Y añade un detalle que pesa más que la puntuación: en los sitios actualizados desde versiones antiguas, la protección está desactivada del todo. El límite de versión del registro es «menor que 5.0.2.1».
CVE-2026-100152 (autoridad: Wordfence, 6,5 medio, vector idéntico) dice que el plugin «is vulnerable to arbitrary shortcode execution in all versions up to, and including, 5.0.2», porque permite una acción «that does not properly validate a value before running do_shortcode». Acto seguido nombra una condición previa que el registro de WPScan no menciona: «This requires the AIOSEO breadcrumb to be rendered on the search results page via the block, widget, shortcode, or template tag». Sus referencias apuntan a app/Common/Breadcrumbs/Frontend.php y al changeset 3723760 del repositorio del plugin, que aquí se cita como referenciado por el registro y no como leído: la página de Trac no devolvió contenido.
CVE-2026-85492 (autoridad: Wordfence, 6,1 medio, CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N) es el distinto: un XSS basado en el DOM en las versiones hasta la 5.0.1.1 incluida, que se alcanza por la ruta de la URL y exige que la víctima tenga el permiso aioseo_manage_seo y abra la vista previa SEO desde la barra de administración estando en la página preparada. Lo corrigió la 5.0.2. Su descubridor figura como mak3bread.
Es decir: los dos registros de shortcodes llevan la misma puntuación, el mismo vector CVSS y un investigador acreditado una vez como «Jakub Herman» y otra como «Kuba», y se publicaron con once horas de diferencia por dos autoridades de numeración distintas. Ninguno cita al otro, y declaran condiciones previas diferentes. Nada en el registro público aclara si eso es un fallo descrito dos veces o dos fallos en el mismo componente, y este artículo no pretende saberlo.
Las fichas propias de Wordfence para sus dos registros no se pudieron descargar durante esta sesión: montan su contenido con JavaScript y devuelven un documento vacío. Wordfence es la autoridad de numeración de ambos, así que el texto citado arriba es suyo, tomado de los registros CVE que redactó.
Qué dice el registro de cambios del propio plugin
El registro de cambios de All in One SEO fecha la 5.0.2 el 22 de septiembre de 2026, la 5.0.2.1 el 1 de octubre de 2026 y la 5.0.3 el 6 de octubre de 2026. La entrada de la 5.0.2.1 tiene exactamente dos líneas, y la de seguridad dice entera: «Improved security protections for shortcodes on search pages».
Preguntado dos veces, en forma explícita de sí o no, si esa entrada contiene las cadenas «CVE», «unauthenticated», «vulnerability» o alguna calificación de gravedad, la respuesta fue no en todos los términos y en las dos lecturas. La entrada de la 5.0.2 tiene la misma forma: «Improved security and access protections in SEO Revisions, SEO Analysis and the SEO Preview». Quien solo lea el registro de cambios no tiene manera de saber que cualquiera de esas dos líneas describe un fallo explotable sin credenciales con código público ya programado, ni cuál de las dos actualizaciones es la urgente.
Qué cambia en la práctica
Nada en el posicionamiento. Esto no es un evento de algoritmo y no va a aparecer en ningún medidor de volatilidad. Lo que cambia es la ventana: un fallo alcanzable sin credenciales, en un plugin instalado en más de dos millones de sitios, tiene código de explotación público programado para un día concreto, y la corrección lleva en el directorio desde el 1 de octubre.
De los propios registros se siguen tres consecuencias. La primera, que la 5.0.2 no basta: corrige el fallo de scripting y no el de shortcodes, una distinción que la numeración de versiones no señala de ninguna manera. La segunda, que la condición previa de Wordfence —la miga de pan en la página de resultados de búsqueda— es un motivo para mirarse las plantillas, pero no un certificado de seguridad, porque el registro de WPScan no menciona esa condición y añade en cambio el caso de las instalaciones actualizadas desde versiones antiguas. La tercera, que la valoración de CISA adjunta al CVE-2026-19856 registra la explotación como «none» y la automatización como «yes», que es una lectura del mismo fallo distinta de la que sugiere un 6,5.
Qué hacer esta semana
Cinco pasos, en este orden, y ninguno necesita presupuesto de seguridad.
- Lee la versión instalada, no la pantalla de actualizaciones. Con WP-CLI:
wp plugin get all-in-one-seo-pack --field=version. Cualquier cosa por debajo de 5.0.2.1 entra dentro del registro de shortcodes. - Actualiza a 5.0.2.1 o posterior. La 5.0.3 es la versión del directorio desde el 6 de octubre de 2026. Si tienes un entorno de pruebas intermedio, esta es la semana de usarlo y no de saltárselo.
- Si hoy no puedes actualizar, mírate la plantilla de resultados de búsqueda. Carga
https://tusitio.com/?s=pruebay comprueba si ahí se pinta la miga de pan de AIOSEO, ya sea por bloque, widget, shortcode o etiqueta de plantilla. Quitarla ataca la condición previa que nombra el registro de Wordfence y no la que nombra el de WPScan, así que trátalo como un parche de urgencia y no como una solución. - Busca sintaxis de shortcode en tus búsquedas internas. En un registro de acceso:
grep -E '\?s=[^ ]*(%5B|\[)' access.log. Unos corchetes en una consulta de búsqueda no prueban nada por sí solos, pero tienen la forma de lo que buscas, y mirar el log sale gratis. - Apunta el 21 de octubre de 2026 en el calendario. Si para entonces el sitio no está en 5.0.2.1 o posterior, la prueba de concepto publicada convierte un fallo descrito en un fallo de copiar y pegar.
Dos apuntes mientras estás dentro. Un plugin que guarda toda la configuración de SEO técnico de un sitio —sitemaps, reglas de robots, canónicas, redirecciones— tiene un radio de daño mayor del que sugiere su categoría, lo que es un argumento para llevar un inventario de herramientas corto antes que completo. Y si le has dado a un asistente de IA permisos de escritura sobre WordPress, esos permisos entran en el mismo cálculo; explicamos qué permite exactamente ese acceso en Claude y tu CMS.
Dónde el sector discrepa de verdad
Debajo de esta historia hay tres preguntas sobre las que este sitio no se ha pronunciado. Se reportan aquí como abiertas.
¿Publicar la prueba de concepto en una fecha anunciada es una práctica de divulgación o un plazo? Un bando sostiene que anunciar la fecha es la única palanca que mueve a la cola larga de sitios sin actualizar, que quien defiende necesita el código para escribir detecciones, y que el fallo ya es conocido para cualquiera que sepa leer un diff. El otro sostiene que una fecha publicada es también una fecha para el atacante, que convierte un fallo descrito en un producto de consumo para todo sitio que no haya actualizado, y que los golpeados serán justo los que nunca iban a leer el aviso. Nadie puede zanjarlo con el registro en la mano, porque no hay ningún estudio publicado que mida tasas de compromiso a uno y otro lado de una publicación programada.
¿Una línea de registro de cambios que no nombra ni el CVE ni la gravedad cumple con el deber del fabricante? Un bando dice que nombrar el CVE arma al atacante contra todos los sitios que aún no han actualizado, y que las bases de datos de vulnerabilidades existen precisamente para que el registro de cambios no cargue con eso. El otro dice que un responsable de sitio no puede priorizar una actualización que no distingue de un arreglo tipográfico, y que «improved security protections» es una frase que vale para cualquier cosa. Tampoco hay nada medible aquí: ningún estudio compara la velocidad de parcheo con la redacción del registro de cambios.
¿Una puntuación CVSS base te dice el riesgo que corre tu sitio? Los dos registros de shortcodes coinciden en el 6,5 y en el vector. La valoración de CISA adjunta a uno de ellos dice explotación «none» y automatizable «yes». Un bando trata la puntuación base como un lenguaje común que permite triar sin rehacer el análisis; el otro la trata como una propiedad del fallo y no de tu instalación, y prefiere medidas basadas en explotabilidad real. Un plugin en dos millones de sitios con un vector sin autenticación es el caso donde más se separan esas dos lecturas.
Lo que opina el autor
Voy a defender una sola afirmación, y es documental: el registro público de este fallo es inconsistente de maneras que afectan a lo que un responsable de sitio hace a continuación. Dos autoridades de numeración describen el mismo componente con once horas de diferencia, con condiciones previas distintas y límites de versión distintos, y el registro de cambios del fabricante no nombra ninguno de los dos. Eso no es acusar a nadie de negligencia: es lo que dicen los cuatro documentos cuando se ponen uno al lado del otro, y cualquiera puede reproducirlo con los enlaces del final de esta página.
Lo que no voy a decir es nada sobre explotación. No tengo telemetría, ni datos de señuelos, ni reportes de incidentes, y nadie ha publicado ninguno. No voy a decir que un 6,5 se queda corto, porque no puedo medir en cuánto. No voy a decir que WPScan hace mal en programar la prueba de concepto, ni bien: eso es un juicio sobre un equilibrio que nadie ha cuantificado. Y no voy a decir que la comprobación de la miga de pan te deja a salvo, porque uno de los dos registros no menciona la miga de pan en absoluto.
Lo único que no necesita discusión es la actualización. El fabricante publicó la corrección hace doce días, los dos registros coinciden en que la 5.0.2.1 la cierra, y el coste de instalarla es un minuto. La ética de la divulgación está genuinamente en disputa; instalar un parche que ya existe, no. Para que conste: este sitio usa Yoast y no All in One SEO, así que no hay aquí una instalación propia que reportar — lo que contamos sobre cómo funciona la economía de la explotación es lectura de datos ajenos, no nuestros.
Lo que sigue sin saberse
Si los dos registros de shortcodes describen un fallo o dos. Si algún sitio ha sido comprometido por cualquiera de ellos. Cuántas de los más de dos millones de instalaciones están hoy por debajo de la 5.0.2.1, cifra que nadie publica. Qué cambió exactamente la corrección, porque el changeset referenciado no se pudo leer en esta sesión. Y qué publicará WPScan el 21 de octubre, que es lo único de esta lista con fecha.
Fuentes
- Registro del programa CVE, CVE-2026-19856 — autoridad de numeración WPScan, publicado el 2 de octubre de 2026, reservado el 14 de agosto de 2026. Leído el 13 de octubre de 2026.
- Registro del programa CVE, CVE-2026-100152 — autoridad de numeración Wordfence, publicado el 3 de octubre de 2026, reservado el 25 de septiembre de 2026. Leído el 13 de octubre de 2026.
- Registro del programa CVE, CVE-2026-85492 — autoridad de numeración Wordfence, publicado el 2 de octubre de 2026. Leído el 13 de octubre de 2026.
- WPScan, «All in One SEO < 5.0.2.1 – Unauthenticated Arbitrary Shortcode Execution via Search Query», publicado el 2 de octubre de 2026, actualizado el 10 de octubre de 2026. Leído el 13 de octubre de 2026.
- All in One SEO, registro de cambios — entradas de la 5.0.2 (22 de septiembre de 2026), la 5.0.2.1 (1 de octubre de 2026) y la 5.0.3 (6 de octubre de 2026). Leído dos veces el 13 de octubre de 2026.
- Directorio de plugins de WordPress, All in One SEO — versión 5.0.3, «2+ million» instalaciones activas, sin cifra exacta publicada. Leído el 13 de octubre de 2026.
- Wordfence, ficha de inteligencia 9fa47d2b — referenciada por CVE-2026-100152. La página no devolvió contenido a una descarga automática el 13 de octubre de 2026, así que no se cita nada de ella.
- Roger Montti, Search Engine Journal, «All In One SEO WordPress Plugin Vulnerable To Two Exploits», 12 de octubre de 2026. El reportaje que sacó a la luz los registros.
En este artículo no se cita ningún estudio, porque no existe ninguno sobre nada de esto: todas las cifras de arriba son fechas, números de versión o calificaciones de gravedad asignadas, y ninguna es una medición. Donde correspondería un tamaño de muestra, no hay ninguno que reportar.