El 14 de octubre de 2026, Wordfence hizo pública una vulnerabilidad de Ocean Extra, el plugin complementario del tema OceanWP: hasta la versión 2.6.0, un visitante sin cuenta podía hacer ejecutar shortcodes arbitrarios (CVE-2026-86803). El parche, la versión 2.6.1, está disponible desde el 10 de septiembre, más de un mes antes del anuncio. Si gestionas un sitio OceanWP, aquí tienes cómo comprobar tu versión, valorar tu exposición real y verificar que no ha habido abusos.
Qué ha pasado
El fallo lo descubrió el 28 de junio de 2026 un investigador que firma como hashiramasenju333, según la cronología de la ficha CVE publicada por Wordfence, autoridad de numeración (CNA) para esta CVE. Wordfence avisó a OceanWP el 8 de septiembre a las 14:56 (hora de París). Dos días después, el 10 de septiembre a las 11:35, se publicaba en wordpress.org la versión 2.6.1 de Ocean Extra con una sola línea en su registro de cambios, «Potential vulnerability patched», que remite a un informe de Wordfence del 8 de septiembre.
Durante cinco semanas no trascendió nada más. El 14 de octubre a las 18:43, Wordfence publicó su ficha, titulada «Ocean Extra <= 2.6.0 - Unauthenticated Arbitrary Shortcode Execution via 'oceanwp_library' Shortcode Template». Patchstack y WPScan la registraron ese mismo día, y la ficha CVE y después la base NVD del NIST siguieron el 15 de octubre por la mañana. Ese mismo día, el enriquecimiento publicado por la CISA (programa Vulnrichment) indicaba una explotación «none» pero un ataque «automatable», es decir, automatizable a gran escala.

A 19 de octubre, ninguna fuente reconocida documenta ataques: ni Wordfence, ni Patchstack, ni WPScan, ni el catálogo KEV de la CISA. La web alemana Dr. Web, que informó del fallo el 15 de octubre, tampoco mencionaba ningún ataque conocido.
Por qué un parche anterior al anuncio lo cambia todo
Este desfase de 34 días es deliberado: los investigadores dan tiempo a los usuarios para actualizar antes de publicar los detalles. Tiene tres consecuencias prácticas.
- Los sitios con las actualizaciones automáticas de plugins activadas están protegidos desde el 10 o el 11 de septiembre, sin haber tenido que hacer nada.
- Durante esas cinco semanas, la mención «Potential vulnerability patched» no indicaba ni la gravedad ni la ausencia de autenticación: un administrador que revisa sus actualizaciones a mano no tenía ningún motivo para darse prisa. Las bases de vulnerabilidades, y por tanto las herramientas de alerta que se alimentan de ellas, todavía no conocían el fallo.
- Desde el 14 de octubre, la situación es la contraria: la ficha pública y el parche, consultable en el repositorio Subversion de wordpress.org, indican exactamente dónde buscar. Los sitios que siguen en la 2.6.0 o anteriores son ahora los objetivos evidentes.
A quién afecta
Ocean Extra es el plugin gratuito que añade al tema OceanWP la biblioteca de plantillas «My Library», ajustes por página, widgets, la importación de demos y varios shortcodes. Tiene más de 400 000 instalaciones activas (wordpress.org). Están afectadas todas las versiones hasta la 2.6.0 incluida; la 2.6.1 corrige el fallo. La versión más reciente a 19 de octubre es la 2.6.3, publicada el 13 de octubre.
| Elemento | CVE-2026-86803 |
|---|---|
| Plugin | Ocean Extra (wordpress.org, slug ocean-extra) |
| Versiones afectadas | hasta la 2.6.0 incluida |
| Corregida en | 2.6.1 (10 de septiembre de 2026); última versión 2.6.3 |
| Cuenta necesaria | Ninguna |
| Tipo | Ejecución de shortcodes arbitrarios (CWE-94, inyección de código) |
| CVSS 3.1 | 6,5, media (Wordfence, recogida por NVD y WPScan); 5,3 según Patchstack |
| Explotación | Ninguna documentada a 19 de octubre de 2026 |
| Descubrimiento | hashiramasenju333, a través de Wordfence |
Las etiquetas no coinciden. Patchstack clasifica el fallo como «ejecución de código arbitrario» aunque le da una prioridad baja, y algunos agregadores hablan de ejecución remota de código. La descripción de Wordfence es más precisa: lo que se ejecuta son shortcodes, no código PHP elegido por el atacante. La gravedad real depende, por tanto, de los shortcodes instalados en tu sitio.
No todas las instalaciones están expuestas del mismo modo. Según el parche, solo está en cuestión el caso de una plantilla «My Library» creada con el editor de bloques; las plantillas diseñadas con Elementor, Beaver Builder o SiteOrigin siguen otro camino en el código. Actualiza en cualquier caso.
Un punto a vigilar: WPScan y Wordfence también recogen, desde el 23 de septiembre, una XSS almacenada explotable por un colaborador y corregida en la 2.6.2, mientras que Patchstack retiró el 1 de octubre el identificador CVE que le había asignado (CVE-2026-94684), calificándola de falso positivo. Apuntar a la 2.6.3 zanja la cuestión.
Cómo funcionaba el fallo
Un shortcode es un código entre corchetes, como , que WordPress sustituye por contenido. Es una herramienta de administrador: WordPress no interpreta los shortcodes que escriben los visitantes, por ejemplo en un comentario. Ocean Extra aporta el shortcode [oceanwp_library id="…"], que muestra una plantilla de la biblioteca «My Library» (cabecera, pie de página, bloque reutilizado).
Wordfence describe la causa en una frase: una acción «no valida correctamente un valor antes de llamar a do_shortcode». El parche publicado en el repositorio de wordpress.org es más elocuente. Hasta la 2.6.0, para una plantilla creada con el editor de bloques, Ocean Extra calculaba primero los bloques (función do_blocks) y luego pasaba todo el resultado por do_shortcode. Pero algunos bloques son dinámicos: su contenido se genera al mostrarse y puede incluir texto procedente del exterior. El comentario añadido en el parche cita los comentarios como ejemplo. Un visitante que colaba un shortcode en ese texto lo veía interpretado en la segunda pasada, con los permisos del sitio.

La versión 2.6.1 invierte el orden: primero se procesan los shortcodes de la plantilla guardada, después se renderizan los bloques, y el resultado ya no vuelve a pasar por do_shortcode. Lo que un atacante puede conseguir depende de los shortcodes disponibles: mostrar un contenido que no debería verse, disparar una función de otro plugin, inyectar contenido en la página. Eso explica la nota CVSS: impacto bajo en la confidencialidad y la integridad, ninguno en la disponibilidad, pero sin autenticación ni interacción necesarias.
Es la segunda ejecución de shortcodes sin cuenta en Ocean Extra, tras CVE-2025-3472 (versión 2.4.6, abril de 2025, que exigía WooCommerce activo), y el segundo fallo en torno al shortcode oceanwp_library tras una XSS por colaborador en agosto de 2025 (CVE-2025-9499). Consulta el historial completo de vulnerabilidades de OceanWP y Ocean Extra.
Indicadores y comprobaciones en tu sitio
Ningún aviso publicado aporta indicadores de compromiso (dirección IP, archivo, usuario o petición tipo). Las comprobaciones siguientes sirven para medir tu exposición y detectar rastros plausibles; no sustituyen un diagnóstico completo. Empieza por la versión instalada:
wp plugin list --name=ocean-extra --fields=name,version,status,update
wp plugin verify-checksums ocean-extra
Después, lista las plantillas de la biblioteca y los shortcodes registrados en el sitio, para saber a qué podría haber llamado un atacante:
wp post list --post_type=oceanwp_library --fields=ID,post_title,post_status,post_modified
wp eval 'echo implode( "\n", array_keys( $GLOBALS["shortcode_tags"] ) );'
Luego busca los comentarios recientes que contengan un corchete de apertura, posible señal de un intento (adapta el prefijo wp_ de tus tablas):
wp db query "SELECT comment_ID, comment_date, comment_author_IP, comment_approved, LEFT(comment_content, 120) FROM wp_comments WHERE comment_content LIKE '%[%' AND comment_date > '2026-06-01' ORDER BY comment_date DESC"
Por último, las comprobaciones habituales en caso de duda:
wp user list --role=administrator --fields=ID,user_login,user_email,user_registered: ningún administrador desconocido;wp core verify-checksums: archivos del núcleo intactos;find wp-content -name "*.php" -mtime -45: archivos PHP modificados desde principios de septiembre, que hay que justificar uno por uno;- en los registros del servidor, peticiones repetidas hacia las páginas que muestran una plantilla «My Library», o envíos de comentarios en ráfaga desde una misma dirección.
Qué hacer ahora
- Actualiza Ocean Extra a la 2.6.3, la última versión a 19 de octubre (como mínimo a la 2.6.1), desde Escritorio → Actualizaciones o con
wp plugin update ocean-extra. - Si el plugin está instalado pero no lo usas, desactívalo y bórralo: sus archivos siguen siendo atacables mientras estén en el servidor.
- Si no puedes actualizar enseguida, retira temporalmente de la vista las plantillas «My Library» creadas con el editor de bloques que contengan bloques dinámicos, y pon los comentarios nuevos en moderación.
- Si las comprobaciones revelan un abuso (administrador desconocido, archivo PHP sospechoso), cambia las contraseñas de los administradores, renueva las claves de seguridad de wp-config.php, revoca las contraseñas de aplicación y restaura una copia de seguridad limpia. La guía para limpiar un sitio WordPress hackeado detalla los pasos.
Reducir la exposición la próxima vez
Este caso ilustra una situación frecuente: el parche existe antes de que nadie sepa que es urgente. La mejor defensa es, por tanto, aplicar las actualizaciones de seguridad sin esperar al anuncio. Las actualizaciones automáticas de los plugins habrían protegido estos sitios desde septiembre. En los sitios donde prefieres validar cada actualización, una vigilancia de las vulnerabilidades toma el relevo en el momento de la publicación, y una vista de conjunto de las actualizaciones pendientes evita que un sitio olvidado se quede semanas atrasado. Limita también los roles y las cuentas a lo estrictamente necesario (principio de mínimo privilegio), ten copias de seguridad probadas y plantéate un cortafuegos de aplicación con parches virtuales para cubrir el intervalo entre el anuncio y la actualización.
WP Masquerade Pro puede ayudar en parte de este trabajo, sin sustituirlo. Sus alertas de vulnerabilidades comparan cada día las versiones instaladas de los plugins y temas de wordpress.org, entre ellos Ocean Extra, con la base pública WPVulnerability.net, y avisan por correo. No habrían señalado nada antes del 14 de octubre: mientras una vulnerabilidad no se publica, ninguna base la conoce. El registro de actividad de los administradores muestra una cuenta creada o un plugin instalado de forma inesperada, desde su activación y solo para lo que pasa por WordPress, y el control de integridad solo verifica los archivos del núcleo, no los de Ocean Extra. Las actualizaciones pendientes y los sitios vulnerables de todos tus sitios aparecen en tu área de cliente. El plugin avisa: no corrige nada y no es un cortafuegos.
En resumen
- CVE-2026-86803: ejecución de shortcodes sin cuenta en Ocean Extra hasta la 2.6.0, CVSS 6,5 según Wordfence.
- Corregida en la 2.6.1 el 10 de septiembre de 2026 y hecha pública el 14 de octubre: los sitios con actualizaciones automáticas ya estaban protegidos.
- Según el parche, solo están en cuestión las plantillas «My Library» creadas con el editor de bloques.
- Ninguna explotación documentada a 19 de octubre; actualiza a la 2.6.3 y revisa los administradores y los archivos recientes.
Fuentes
- CVE.org: CVE-2026-86803, Ocean Extra 2.6.0 y versiones anteriores (15 de octubre de 2026) (enlace externo, se abre en una pestaña nueva)
- WordPress.org Plugin Trac: changeset 3689650, ocean-extra/includes/panel/library-shortcode.php (10 de septiembre de 2026) (enlace externo, se abre en una pestaña nueva)
- CVE.org: CVE-2026-94684, identificador rechazado por Patchstack (1 de octubre de 2026) (enlace externo, se abre en una pestaña nueva)
- NVD: CVE-2025-3472, Ocean Extra 2.4.6 y versiones anteriores (22 de abril de 2025) (enlace externo, se abre en una pestaña nueva)
Otras fuentes consultadas: otras fichas CVE, páginas oficiales de los editores, artículos de prensa especializada, bases de datos de Wordfence, WPScan y Patchstack.


