La Wikimedia Foundation informó de un incidente de ciberseguridad breve pero significativo provocado por un gusano JavaScript autorreplicante que afectó a Meta-Wiki. El código malicioso modificó miles de páginas y reemplazó scripts de usuario de decenas de editores, obligando a la organización a bloquear temporalmente las ediciones en todos los proyectos de Wikimedia como medida de contención.
Descubrimiento del incidente en Meta-Wiki y respuesta inicial
La detección inicial no vino de sistemas automáticos, sino de la propia comunidad. Varios editores observaron ediciones masivas y automatizadas que añadían código oculto y contenido basura en páginas aleatorias. La situación se planteó en la página Village Pump (technical) y fue rápidamente escalada al equipo de ingeniería de la Wikimedia Foundation.
Ante la actividad sospechosa, los desarrolladores optaron por una medida drástica pero estándar en incidentes de seguridad: suspender temporalmente la capacidad de editar en todos los proyectos Wikimedia. Este tipo de “congelación” global es habitual en plataformas de gran escala para frenar la propagación de código malicioso y estabilizar la infraestructura antes de iniciar la limpieza.
Vector de entrada: un script de usuario en la Wikipedia en ruso
Según el registro en el sistema de seguimiento de errores Phabricator, el punto de entrada fue un archivo JavaScript de usuario alojado en la Wikipedia en ruso, en la ruta User:Ololoshka562/test.js. El script estaba presente desde marzo de 2024 y ya se había vinculado previamente a herramientas usadas en otros ataques contra proyectos wiki.
De acuerdo con el análisis recogido por medios especializados, el test.js se ejecutó la semana anterior durante pruebas internas de funcionalidad de scripts de usuario realizadas por personal de Wikimedia. No se ha aclarado aún si se trató de un error operativo, de una acción deliberada o del uso de una cuenta comprometida, un escenario frecuente en incidentes donde el acceso es legítimo, pero el propósito del uso no lo es.
Mecanismo del ataque: explotación de scripts de usuario en MediaWiki
Cómo funciona la personalización con JavaScript en Wikimedia
Los proyectos de Wikimedia, basados en la plataforma MediaWiki, permiten a la comunidad utilizar scripts JavaScript globales y personales, como MediaWiki:Common.js (común para todos) y User:<nombre-de-usuario>/common.js (específico por cuenta). Estos archivos se ejecutan en el navegador de los editores autenticados y se emplean para personalizar la interfaz, automatizar tareas repetitivas y ampliar funcionalidades.
Del recurso de productividad al canal de propagación
El gusano JavaScript convirtió este mecanismo en su principal vector de ataque. Una vez que el test.js malicioso se cargaba en el navegador de un editor conectado, el código intentaba modificar tanto los scripts globales como los personales. De esta forma, el malware se persistía en el entorno del usuario y se ejecutaba automáticamente en visitas posteriores, aumentando la probabilidad de propagarse a más cuentas con permisos de edición.
Además, el gusano solicitaba una página aleatoria mediante el servicio Special:Random, inyectando en ella una imagen y un loader de JavaScript oculto. Este loader descargaba código adicional desde el dominio basemetrika[.]ru. Esta arquitectura modular es típica de los gusanos XSS (Cross-Site Scripting): el payload inicial es ligero y actúa como cargador de un script externo más complejo, lo que facilita la ofuscación, el cambio dinámico del código malicioso y la evasión de controles.
Impacto del gusano JavaScript y acciones de contención
Las estimaciones indican que el gusano modificó unas 3.996 páginas en Meta-Wiki y alteró el archivo common.js de aproximadamente 85 usuarios. Esta última cifra es especialmente relevante desde la perspectiva de ciberseguridad, porque un script de usuario comprometido puede reactivar el ataque cada vez que el editor inicia sesión, incluso si las páginas ya han sido limpiadas.
Para cortar esa persistencia, el equipo de Wikimedia realizó reversiones masivas de los scripts de usuario afectados y ocultó las páginas comprometidas de la historia pública de ediciones, reduciendo así la exposición del código malicioso. Tras eliminar el JavaScript inyectado y verificar la integridad de los componentes clave de MediaWiki, se restableció gradualmente la posibilidad de editar.
Según la fundación, el código malicioso estuvo activo solo durante 23 minutos y afectó exclusivamente a Meta-Wiki. No se han detectado indicios de propagación al núcleo de Wikipedia ni al resto de proyectos, ni evidencias de filtración de datos de usuarios. El contenido legítimo se recuperó a partir de copias de seguridad y del historial interno de revisiones.
Lecciones de ciberseguridad: gestionar el riesgo de los scripts de usuario
Un incidente breve con implicaciones estructurales
La Wikimedia Foundation ha explicado que el incidente se produjo durante una revisión de seguridad del código de usuario, en la que se ejecutó un script previamente inactivo que fue rápidamente identificado como malicioso. El caso ilustra un reto recurrente en plataformas colaborativas: el equilibrio entre la potencia de la personalización con JavaScript y el riesgo de convertir esos mismos mecanismos en un canal de ataque.
Como respuesta, Wikimedia trabaja en mecanismos de protección adicionales, entre ellos un mayor control de permisos, posibles entornos aislados (sandboxes) para la ejecución de scripts, análisis automatizado de comportamientos anómalos y refuerzo del control de accesos a cuentas con privilegios elevados. Estas medidas están alineadas con buenas prácticas reconocidas, como el principio de mínimo privilegio y la monitorización continua de actividades inusuales.
Para los administradores de plataformas y comunidades en línea, el incidente de Meta-Wiki subraya la necesidad de políticas estrictas sobre código personalizado: auditorías periódicas de scripts, revisión de cambios sensibles, monitorización de ediciones masivas y formación de usuarios en desarrollo seguro. Invertir en estos controles reduce de forma significativa la probabilidad de que un “simple script de pruebas” se convierta en el próximo gusano JavaScript capaz de comprometer la integridad de todo un ecosistema colaborativo.