El endpoint /vendor/ no pertenece al núcleo de WordPress. Normalmente es un directorio creado por Composer, el gestor de dependencias de PHP. En proyectos WordPress puede aparecer por plugins, temas personalizados o aplicaciones PHP adicionales.

Si /vendor/ es accesible públicamente, no es automáticamente una vulnerabilidad, pero puede provocar divulgación de información y, dependiendo de su contenido, aumentar la superficie de ataque.

¿Qué es /vendor/?

Composer suele instalar las dependencias PHP en:

/vendor/

Por ejemplo:

/vendor/autoload.php /vendor/composer/ /vendor/guzzlehttp/ /vendor/monolog/ /vendor/symfony/

El archivo más conocido es:

/vendor/autoload.php

Este archivo permite que una aplicación cargue automáticamente las librerías instaladas mediante Composer.

Un plugin o tema de WordPress puede tener su propio directorio:

/wp-content/plugins/mi-plugin/vendor/

y esto es completamente normal.

¿Qué contiene y para qué sirve?

Esta carpeta es creada y gestionada automáticamente por Composer, el gestor de paquetes para PHP. Si ves una carpeta vendor en tu instalación, es muy probable que algún tema o plugin se haya instalado a través de Composer para incluir las librerías que necesita.

  1. Librerías externas: Como opis (que ha sido visto en instalaciones de WooCommerce) y yoast (que aparece en versiones antiguas del plugin Yoast SEO).
  2. Código de desarrollo: En el pasado, algunos plugins (como Yoast SEO) empaquetaban erróneamente esta carpeta con código de desarrollo que no debería estar en producción, aunque esto no supuso un riesgo grave de seguridad.
  3. Archivos sensibles: El riesgo aumenta si dentro de /vendor/ existen accidentalmente archivos como: .env, .git/, config.php, debug.log

⚠️ ¿Es un riesgo de seguridad?

La carpeta /vendor/ en sí misma no es un peligro, pero es un punto crítico para la estabilidad de tu web.

El error más común que cometen los administradores es eliminar esta carpeta al ver archivos sospechosos. Si borras la carpeta vendor de un plugin o tema, el sitio dejará de funcionar inmediatamente, mostrando un "error crítico".

Por ejemplo: Si borras la carpeta vendor de un tema como Hello Elementor, WordPress no podrá cargar las dependencias necesarias y el sitio se romperá.

¿Cómo comprobarlo?

Comprueba: https://ejemplo.com/vendor/

Resultados:

  1. 404 Not Found 🟢 No existe
  2. 403 Forbidden 🟢 Acceso bloqueado
  3. 200 sin contenido útil 🟡 Revisar
  4. 200 + Index of 🟠 Directory Listing
  5. Dependencias visibles 🟠 Information Disclosure
  6. Archivos sensibles descargables 🔴 Alto/crítico

También es interesante comprobar:

/vendor/autoload.php /vendor/composer/ /vendor/composer/installed.php

y, dependiendo del proyecto:

/composer.json /composer.lock

¿Cómo protegerlo?

Desactivar el listado de directorios

En Apache:

Options -Indexes

Esto evita que se muestre:

Index of /vendor/

Bloquear el acceso web si no es necesario

Si el vendor está en la raíz del proyecto y no necesita ser servido directamente:

Apache:

<Directory "/ruta/a/vendor"> Require all denied </Directory>

Nginx:

location ^~ /vendor/ { deny all; return 403; }

Sin embargo, no debes aplicar esto indiscriminadamente a un /vendor/ que una aplicación necesite servir públicamente.

En resumen, el directorio /vendor/ es un componente normal del ecosistema moderno de PHP, pero es esencial para que tu sitio funcione. No lo borres a menos que estés 100% seguro de que ya no es necesario, y si sospechas de un problema, actualiza el plugin o tema que lo contiene.