
CVE-2025-12163: Cross-Site Scripting Almacenado en el Plugin Omnipress de WordPress
Vulnerabilidad de XSS Almacenado en el Plugin Omnipress de WordPress (CVE-2025-XXXXX) - Una vulnerabilidad de cross-site scripting almacenado en el plugin de bloques Gutenberg Omnipress que permite a atacantes autenticados con privilegios de nivel Autor inyectar scripts maliciosos.
Se descubrió una vulnerabilidad de cross-site scripting almacenado (XSS) en el plugin Omnipress de WordPress que permite a atacantes autenticados con acceso de nivel Autor o superior inyectar scripts web arbitrarios en páginas que se ejecutan cada vez que un usuario accede a una página inyectada.
Descubierto por: Kai Aizen
Publicado: Diciembre de 2025
Puntuación CVSS: 6.4 (Medio)
CWE: CWE-79 - Neutralización Incorrecta de la Entrada Durante la Generación de Páginas Web ('Cross-site Scripting')
Plugin: Omnipress – Plugin de Bloques Gutenberg para WordPress
Tipo de Ataque: Cross-Site Scripting Almacenado Autenticado (Autor+)
Privilegios Requeridos: Acceso de nivel Autor o superior
El plugin Omnipress para WordPress es vulnerable a Cross-Site Scripting Almacenado en todas las versiones hasta la 1.6.3 inclusive, debido a una sanitización insuficiente de la entrada y un escape insuficiente en la salida. Esto permite que atacantes autenticados, con acceso de nivel Autor o superior, inyecten scripts web arbitrarios en páginas que se ejecutarán cada vez que un usuario acceda a una página inyectada.
Esta vulnerabilidad permite a atacantes autenticados:
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N
La vulnerabilidad existe debido al manejo incorrecto de la entrada del usuario en los componentes del editor de bloques de Omnipress:
La vulnerabilidad puede ser explotada mediante:
Existe una Prueba de Concepto que demuestra esta vulnerabilidad, pero se retiene para dar tiempo a la aplicación de parches y actualizaciones por parte de los usuarios.
Acción Inmediata Requerida:
Asegúrese de que todas las entradas de usuario en los bloques Gutenberg implementen controles de seguridad adecuados:
// Ejemplo de escape de salida correcto en la renderización del bloque
function render_block_content( $attributes ) {
// Escapar todos los atributos proporcionados por el usuario
$safe_content = esc_html( $attributes['content'] );
$safe_url = esc_url( $attributes['url'] );
$safe_attr = esc_attr( $attributes['customAttr'] );
// Usar wp_kses para contenido HTML con etiquetas permitidas
$allowed_html = array(
'a' => array( 'href' => array(), 'title' => array() ),
'strong' => array(),
'em' => array(),
);
$safe_html = wp_kses( $attributes['htmlContent'], $allowed_html );
return sprintf(
'<div class="%s"><a href="%s">%s</a></div>',
$safe_attr,
$safe_url,
$safe_content
);
}
Investigadores:
Proceso de Divulgación: Coordinado a través del Programa de Recompensas por Errores de Wordfence
Esta información se proporciona únicamente con fines de investigación de seguridad y defensa. Cualquier explotación de esta vulnerabilidad con fines maliciosos es ilegal y poco ética. Siempre obtenga la autorización adecuada antes de probar sistemas que no le pertenezcan.
Para preguntas o información adicional sobre esta vulnerabilidad:
Última actualización: Diciembre de 2025
El artículo completo de este proyecto, la metodología y la investigación relacionada se encuentran en:
https://snailsploit.com/security-research/cves/cve-2025-12163/
Creado por Kai Aizen — investigador independiente de seguridad ofensiva.
snailsploit.com · Investigación · Frameworks · GitHub · LinkedIn · ResearchGate · X/Twitter
Mismo ataque. Diferente sustrato.
| Métrica | Valor |
|---|
| Vector de Ataque | Red (AV:N) |
| Complejidad de Ataque | Baja (AC:L) |
| Privilegios Requeridos | Bajos (PR:L) |
| Interacción del Usuario | Ninguna (UI:N) |
| Alcance | Cambiado (S:C) |
| Confidencialidad | Baja (C:L) |
| Integridad | Baja (I:L) |
| Disponibilidad | Ninguna (A:N) |