| Nombre del plugin | Prisna GWT – Traductor de Sitios Web de Google |
|---|---|
| Tipo de vulnerabilidad | Scripting entre sitios (XSS) |
| Número CVE | CVE-2024-12680 |
| Urgencia | Baja |
| Fecha de publicación de CVE | 2026-01-30 |
| URL de origen | CVE-2024-12680 |
CVE-2024-12680: XSS almacenado en el administrador en Prisna GWT – Traductor de Sitios Web de Google (≤ 1.4.13) — Lo que los propietarios de sitios de WordPress necesitan saber
Autor: Experto en seguridad de Hong Kong · Fecha: 2026-01-30
TL;DR — Una vulnerabilidad de Cross‑Site Scripting (XSS) almacenada (CVE‑2024‑12680) afecta a las versiones del plugin Prisna GWT – Traductor de Sitios Web de Google anteriores a 1.4.14. La explotación requiere que un administrador autenticado interactúe (se requiere interacción del usuario) pero puede resultar en la ejecución de scripts en el contexto del administrador. Actualice a 1.4.14 de inmediato, audite la base de datos en busca de scripts inyectados y aplique mitigaciones temporales, incluidas reglas de WAF y endurecimiento de cuentas de administrador.
Resumen
El 30 de enero de 2026 se publicó una vulnerabilidad de Cross‑Site Scripting (XSS) almacenada que afecta al plugin de WordPress “Prisna GWT – Traductor de Sitios Web de Google” (versiones < 1.4.14) y se le asignó CVE‑2024‑12680. La vulnerabilidad se clasifica como “XSS almacenado Admin+” — lo que significa que se puede apuntar a una cuenta privilegiada (administrador), y una carga útil maliciosa guardada en los datos del plugin se ejecutará en el navegador cuando se vean o interactúen con ciertas páginas de administración o elementos de la interfaz de usuario.
Aunque la gravedad base de la vulnerabilidad es moderada (CVSS 5.9), el riesgo práctico está limitado por los privilegios requeridos y la interacción del usuario. Sin embargo, el XSS almacenado del lado del administrador puede habilitar acciones posteriores a la explotación, como:
- Inyección de JavaScript administrativo para facilitar la persistencia (por ejemplo, cambiar opciones del sitio o introducir puertas traseras)
- Robo de cookies o tokens de autenticación de administradores (toma de sesión)
- Activación de ataques automatizados adicionales o movimiento lateral cuando se encadena con otros fallos
- Inyección de elementos de interfaz de usuario maliciosos para robar credenciales o introducir redirecciones maliciosas
Esta guía explica el problema, pasos de detección seguros, opciones de mitigación y orientación de recuperación desde la perspectiva de un profesional de seguridad de Hong Kong.
¿Qué es exactamente un “XSS almacenado Admin”?
El XSS almacenado ocurre cuando los datos proporcionados por el usuario se almacenan en el servidor y luego se muestran a los usuarios sin la debida sanitización o codificación. En un caso de “XSS almacenado Admin”:
- La carga útil se almacena en las opciones del plugin, configuraciones del administrador u otro almacenamiento del lado del servidor por un atacante (o una cuenta de administrador comprometida).
- Cuando otro administrador (o el mismo administrador realizando una tarea rutinaria) abre una página de administración del plugin, el script almacenado se ejecuta en su contexto de navegador.
- Debido a que esto se ejecuta dentro del navegador del administrador y con los privilegios de ese usuario, puede realizar cualquier acción que el usuario pueda realizar a través de la interfaz de usuario, incluyendo cambiar configuraciones, editar archivos de temas/plugins, crear nuevos usuarios, etc.
En este informe, el plugin acepta entradas de administrador que no fueron suficientemente sanitizadas o escapadas antes de ser mostradas en la interfaz de usuario del administrador.
Alcance y versiones afectadas
- Plugin afectado: Prisna GWT – Traductor de Sitios Web de Google
- Versiones afectadas: cualquier versión anterior a 1.4.14 (< 1.4.14)
- Corregido en: 1.4.14
- CVE: CVE‑2024‑12680
- Privilegio requerido: Administrador
- Interacción del usuario: Requerida (el administrador debe ver/hacer clic en una página o enlace elaborado)
- Categoría OWASP: A3 — Inyección (Cross‑Site Scripting)
- Prioridad del parche: Baja (pero se recomienda implementar lo antes posible)
Por qué deberías seguir preocupado (incluso si necesita acceso de administrador)
Muchos compromisos de sitios comienzan con el robo de credenciales de administrador o ingeniería social. Los atacantes pueden obtener credenciales de administrador a través de phishing, contraseñas reutilizadas o herramientas de desarrollador comprometidas. El XSS almacenado en la interfaz de usuario del administrador es atractivo porque permite a los atacantes:
- Convertir una sola sesión de administrador comprometida en control persistente a través de inyección de código o cambios de configuración
- Eludir las protecciones del lado del servidor manipulando el navegador del administrador (persistencia del lado del cliente)
- Utilizar ingeniería social para engañar a un administrador para que cargue una URL elaborada o abra una página de configuración específica
Por lo tanto, a pesar del requisito de privilegio, los impactos posteriores pueden ser graves.
Flujo de explotación de alto nivel (no accionable)
Nota: No se proporciona código de explotación ni instrucciones de armamento paso a paso.
- Un usuario privilegiado es engañado para visitar una URL de administrador elaborada o interactuar con un formulario de entrada malicioso.
- El atacante utiliza configuraciones de plugins o campos de opción para almacenar una carga útil que contiene JavaScript.
- Cuando un administrador abre la página de administración del plugin relevante, el navegador ejecuta el script almacenado.
- El script actúa en el contexto de la sesión autenticada del administrador — cambiando opciones, agregando usuarios, exfiltrando tokens, etc.
La remediación inmediata es eliminar la ruta de salida vulnerable o actualizar al plugin parcheado.
Acciones inmediatas (qué hacer ahora mismo)
Si ejecutas sitios de WordPress con este plugin instalado, toma estos pasos de inmediato:
- Actualiza de inmediato
- Actualiza el plugin a la versión 1.4.14 (o posterior) en los entornos de producción, staging y desarrollo lo antes posible.
- Si las actualizaciones automáticas no están habilitadas, programa la actualización y centraliza las actualizaciones donde sea posible.
- Si no puedes actualizar de inmediato, desactiva el plugin
- Desactiva temporalmente el plugin hasta que se pueda actualizar. Esto elimina la salida vulnerable de la interfaz de usuario del administrador donde se pueden ejecutar cargas útiles almacenadas.
- Audita las cuentas y sesiones de administrador.
- Obligue a un restablecimiento de contraseña para todas las cuentas de administrador.
- Invalida todas las sesiones activas (usa herramientas de gestión de sesiones o WP‑CLI donde esté disponible).
- Habilita la Autenticación de Dos Factores (2FA) para todos los administradores.
- Escanea en busca de contenido de script inyectado.
- Busca en la base de datos cadenas sospechosas comúnmente asociadas con XSS: <script, onerror=, onload=, javascript:, document.cookie, innerHTML= y otros patrones.
- Verifica las opciones específicas del plugin (filas wp_options con option_name que coincidan con las claves del plugin), además de las áreas post_meta y term_meta que el plugin pueda usar.
- Realiza búsquedas en una copia de staging para evitar cambios accidentales en los datos de producción.
- Usa un Firewall de Aplicaciones Web (WAF) para crear protecciones temporales.
- Agrega reglas WAF para bloquear solicitudes POST de administrador que contengan etiquetas de script o atributos peligrosos.
- Block requests with javascript: URIs or encoded script sequences (e.g. %3Cscript).
- Previene que usuarios no autenticados o de bajo privilegio accedan a puntos finales sensibles de administrador.
- Revisa y limpia cualquier inyección detectada.
- Si encuentras scripts inyectados en la base de datos, elimínalos con cuidado.
- Considera restaurar desde una copia de seguridad limpia si no puedes eliminar con confianza todas las entradas maliciosas.
- Rota las claves API y credenciales almacenadas en opciones después de limpiar.
Detección: cómo encontrar signos de explotación
Busca los siguientes indicadores:
- Nuevas cuentas de usuario de administrador o cuentas modificadas que no creaste.
- Cambios inesperados en los archivos del plugin o tema.
- Modificaciones recientes a las entradas de la tabla wp_options del sitio vinculadas al plugin de traducción
- HTML que contiene o atributos de manejador de eventos dentro de los campos de opción de administración
- Conexiones salientes inusuales desde el sitio
- Inicios de sesión administrativos desde direcciones IP desconocidas o en horarios anormales
Consultas SQL de muestra para investigación (ejecutadas desde un entorno seguro o copia de staging):
SELECT option_id, option_name, option_value
SELECT meta_id, meta_key, meta_value
FROM wp_postmeta
WHERE meta_value LIKE '%
SELECT option_id, option_name FROM wp_options
WHERE option_value LIKE '%onerror=%' OR option_value LIKE '%onload=%' OR option_value LIKE '%javascript:%';
Always run searches on a database copy to avoid accidental changes in production.
Safe cleanup and recovery guidance
- Isolate first
- Put the site in maintenance mode and disable the vulnerable plugin until cleanup finishes.
- Backup
- Take a full backup of site files and the database, preserving the current state for forensic review.
- Remove injected content safely
- Replace or remove offending option values using carefully scoped UPDATE queries or WP‑CLI search‑replace.
- Avoid naïve regex replacements that can corrupt serialized PHP data — use serialization‑aware tools.
- Harden and restore
- Reinstall the plugin from a fresh copy downloaded from the official plugin repository after updating to the patched version.
- Reset admin passwords and API keys; enable 2FA and review user permissions.
- Monitor
- Monitor for anomalous behaviour for several weeks: new admin users, file changes, unexpected outbound traffic.
WAF recommendations (temporary virtual patches)
A Web Application Firewall can provide fast, temporary protection by filtering malicious payloads before they reach plugin code. Below are rule concepts — tune them to your environment and test in monitor mode first.
- Block POST bodies to admin endpoints containing suspicious tokens
Den y requests to /wp-admin/* or admin-post.php when the body contains <script, onerror=, onload=, javascript: or encoded variants like %3Cscript.
Conceptual regex (PCRE, case-insensitive):
(?i)(<\s*script\b|javascript:|onerror\s*=|onload\s*=|document\.cookie|innerHTML\s*=) - Sanitize output for known admin pages (advanced)
Configure the WAF to strip script tags and event handler attributes from HTML responses to /wp-admin/* pages where possible. Response modification can impact functionality — test carefully.
- Protect plugin-specific AJAX endpoints
Block POST/GET parameters that contain script tags or suspicious keywords for plugin-related AJAX actions.
- Rate limit sensitive admin actions
Apply stricter rate limits for actions that modify options, create users, or upload files. Require re-authentication for high-risk changes.
- IP allow/deny lists
Where feasible, restrict /wp-admin/ access to known IP ranges or require a VPN/gateway for admin access.
- Content Security Policy (CSP) for admin pages
A restrictive CSP can help prevent inline script execution even if malicious code is present. Example header for admin pages (test for compatibility):
Content-Security-Policy: default-src 'self'; script-src 'self' 'unsafe-eval'; object-src 'none'; frame-ancestors 'none';
Deploy WAF rules in monitor mode first to identify false positives, then enforce after tuning.
Example WAF rule templates (conceptual — tune & test)
These are conceptual rules you can implement in your WAF management console. They are expressed as logic rather than copy‑paste rules.
- Rule 1: Block suspicious script payloads in admin POSTs
When: Request URL matches /wp-admin/* OR /wp-admin/admin-ajax.php
And: Request body (POST) contains regex(?i)(<\s*script\b|javascript:|onerror\s*=|onload\s*=|document\.cookie|innerHTML\s*=)
Then: Block request, log event, notify administrator - Rule 2: Block suspicious query strings containing encoded scripts
When: Any request query string contains %3Cscript or javascript: (case-insensitive)
Then: Challenge (CAPTCHA) or block depending on risk tolerance - Rule 3: Limit changes to plugin options
When: POST to admin endpoint with parameter names known to belong to the translator plugin
And: Request size > threshold or contains suspicious patterns
Then: Require re-authentication or 2FA confirmation before applying changes - Rule 4: Response sanitization (optional / advanced)
When: Response to admin page contains script tags in plugin output
Then: Replace or remove <script> occurrences from response before returning to client (use with caution)
Response modification is powerful but potentially disruptive — test in staging.
Hardening best practices for administrators (prevention and mitigation)
- Least privilege: Only give Administrator role to accounts that absolutely need it.
- Dedicated admin accounts: Separate development and content accounts from administrative accounts.
- Enforce strong passwords and 2FA for every admin and delegated user.
- Limit plugin installations: Remove unused or unmaintained plugins.
- Centralized updates: Maintain a patch/update procedure and apply security fixes within defined SLAs.
- Monitoring: Implement file integrity monitoring and activity logs for admin actions.
- Backups: Maintain recent backups and test restore procedures regularly. Keep at least one offline backup not writable from the application.
Post‑incident forensic checklist
- Preserve logs and backups
- Export access logs, WAF logs, and server logs. Snapshot site and database for later review.
- Engage a security professional or incident response team
- Triage the extent of compromise and assess data exfiltration risk.
- Reinstall core and plugins
- Reinstall WordPress core, themes and plugins from trusted sources after verifying they are clean and up to date.
- Rotate secrets
- Rotate API keys, OAuth tokens, and third‑party credentials stored on the site.
- Notify stakeholders
- If user data or administrative control was impacted, follow incident response and legal reporting procedures.
Frequently asked questions
- Q: Can an attacker exploit this remotely without any access?
- A: No. This stored XSS variant requires an administrator's credentials to store the payload and an admin to interact with the crafted content. It is not an unauthenticated full‑site takeover vector by itself.
- Q: Can a non‑admin user exploit this?
- A: Not in the described context. The vulnerability involves admin‑side UI output and storage. However, privilege escalation or other chained vulnerabilities could change that assessment.
- Q: Will a WAF stop this for good?
- A: A WAF provides a critical layer of defence and can mitigate the attack vector quickly (virtual patching), but it is not a substitute for applying the official plugin update. Patch the plugin as the definitive fix.
- Q: Should I remove the plugin?
- A: If you do not need the translator plugin’s functionality, removing it permanently reduces attack surface. If you need it, update to the patched version immediately and apply the hardening steps above.
Final notes and immediate checklist
- Update Prisna GWT – Google Website Translator to version 1.4.14 (or uninstall if not needed).
- If you cannot update immediately — deactivate the plugin and apply temporary WAF rules to block suspicious admin input.
- Audit the database for stored scripts and sanitize any admin‑stored fields.
- Reset admin passwords and enable 2FA for all administrative accounts.
- Monitor logs and look for signs of post‑exploitation (new admin accounts, file changes, outbound anomalies).
- If needed, consult a qualified security professional for incident response and remediation.
Stay vigilant. From a Hong Kong security expert perspective: prompt patching, least‑privilege admin practices, and careful monitoring are the most practical controls to reduce risk from this vulnerability.
— Hong Kong Security Expert