El directorio /wp-content/mu-plugins/ aloja los plugins de uso obligatorio (Must-Use Plugins) de WordPress, una característica legítima pero que también es un objetivo prioritario para los atacantes debido a su naturaleza sigilosa y persistente.

¿Qué es un "MU-Plugin"?

Son un tipo especial de plugin que, a diferencia de los normales:

  1. Se activan automáticamente al estar presentes en el directorio, sin necesidad de activación manual desde el panel de administración.
  2. No se pueden desactivar desde la interfaz de WordPress; la única forma de desactivarlos es eliminando el archivo del servidor.
  3. No aparecen en la lista de plugins por defecto, haciéndolos invisibles para la mayoría de los administradores a menos que se filtre específicamente por "Must-Use".
  4. Se cargan antes que los plugins normales, lo que les otorga alta prioridad y los hace útiles para funcionalidades críticas o ajustes de rendimiento.

Usos legítimos

En su uso correcto, esta carpeta es una herramienta poderosa para desarrolladores que buscan:

  1. Implementar reglas de seguridad que no puedan ser desactivadas accidentalmente por otros administradores.
  2. Aplicar funcionalidad personalizada que no dependa de un tema en particular, lo que la hace "portable" incluso si se cambia de tema.
  3. Forzar características en redes Multisitio para todos los sitios de la red.
  4. Alojar características específicas del hosting, como plugins que tu proveedor instala para optimizar su servicio.

⚠️ El lado oscuro: Un escondite perfecto para malware

La misma invisibilidad y carga forzosa que hacen útiles a los MU-Plugins los convierten en un vector de ataque muy atractivo para los ciberdelincuentes. Varios informes de seguridad han documentado el abuso masivo de este directorio.

¿Cómo operan los ataques?

Instalación sigilosa: Un atacante sube un archivo PHP malicioso a /wp-content/mu-plugins/. No necesita ser "activado" y no aparecerá en el listado normal, por lo que puede pasar desapercibido durante mucho tiempo.

Persistencia total: Al no poder desactivarse desde el panel de administración, el malware se mantiene ejecutándose en cada carga de página, incluso si el administrador elimina otros plugins infectados o cambia la contraseña.

Funcionalidades maliciosas: Los investigadores han encontrado varios tipos de payloads en este directorio, incluyendo:

  1. redirect.php: Redirige a los visitantes (excepto a administradores y bots) a sitios de phishing o que muestran falsas actualizaciones del navegador para instalar malware.
  2. index.php (webshell): Actúa como una puerta trasera que permite al atacante ejecutar código remotamente, tomar control total del servidor, y robar datos.
  3. custom-js-loader.php: Inyecta JavaScript malicioso que puede reemplazar imágenes con contenido explícito o secuestrar enlaces para abrir ventanas emergentes no deseadas.
  4. Backdoor avanzado (2025): Se ha visto un malwarewp-index.php que además de crear un usuario administrador officialwp, cambia las contraseñas de usuarios comunes ("admin", "root") a una controlada por el atacante, y reinfecta el sitio si se detecta su eliminación.

¿Es una vulnerabilidad?

No. La existencia de la carpeta mu-plugins es completamente normal en WordPress.

El problema aparece si:

  1. Es posible listar el contenido del directorio.
  2. Se exponen archivos PHP, copias de seguridad o archivos de configuración.
  3. Hay plugins vulnerables dentro de esa carpeta.

Riesgos asociados

Listado de directorios

Si el servidor tiene habilitado el Directory Listing, un atacante podría acceder a: https://tudominio.com/wp-content/mu-plugins/

y ver algo como:

Index of /wp-content/mu-plugins/ cache.php security.php custom-login.php debug.php

Esto permite conocer:

  1. Qué plugins personalizados utiliza el sitio.
  2. Nombres de archivos internos.
  3. Posibles objetivos para buscar vulnerabilidades conocidas.

Exposición de archivos sensibles

Es relativamente frecuente encontrar por error:

config.php backup.php debug.php database.php test.php old.php

o incluso:

config.bak config.old config.txt

Estos archivos pueden revelar información sensible.

Plugins vulnerables

Si un MU Plugin contiene una vulnerabilidad (por ejemplo, ejecución remota de código, subida de archivos o SQL Injection), un atacante podría explotarla igual que cualquier otro plugin.

¿Cómo comprobar si está expuesto?

Accede a: https://tudominio.com/wp-content/mu-plugins/

Los posibles resultados son:

  1. 403 Forbidden ✅ (correcto).
  2. 404 Not Found ✅ (también aceptable).
  3. Index of... ❌ (riesgo por listado de directorios).
  4. Descarga o visualización de archivos ❌ (riesgo).

¿Cómo mitigar el riesgo?

En Apache (.htaccess):

Options -Indexes

En Nginx, evita la directiva:

autoindex on;

En resumen, /wp-content/mu-plugins/ no es una vulnerabilidad en sí misma. El riesgo depende de si el servidor expone el contenido del directorio o contiene archivos inseguros que puedan ser accedidos desde la web.