Una sola plantilla y todo se va al traste. Gracias, PHP 8.1.
Se han descubierto nuevas brechas en los foros populares basados en vBulletin, a través de las cuales es posible ejecutar código arbitrario directamente en el servidor, sin necesidad de iniciar sesión ni usar contraseña. Se trata de dos vulnerabilidades críticas, identificadas como CVE-2025-48827 y CVE-2025-48828. La primera ya está siendo utilizada en ataques reales, mientras que la segunda permite completar la cadena y tomar control total del sistema.
Las vulnerabilidades fueron identificadas el 23 de mayo de 2025 por el investigador independiente Egidio Romano (EgiX), quien publicó un análisis técnico detallado describiendo los mecanismos de explotación. En el centro de todo el problema están los cambios en el comportamiento de PHP a partir de la versión 8.1 y errores en la lógica del motor de plantillas de vBulletin. Juntos producen un resultado inesperado y peligroso: ejecución remota y no autenticada de comandos arbitrarios en el servidor.
El primer problema está relacionado con el uso incorrecto del API de Reflection. Este mecanismo permite invocar métodos protegidos de objetos, y anteriormente requería una apertura explícita de acceso. Sin embargo, en PHP 8.1 el comportamiento cambió: ciertas invocaciones mediante reflexión ya no necesitan abrir explícitamente el acceso. Si esto no se contempló en el código, el método puede ser llamado directamente, sin necesidad de trucos adicionales.
En vBulletin existen muchas llamadas de este tipo. Por ejemplo, mediante el método vulnerable replaceAdTemplate es posible insertar una plantilla especialmente preparada directamente desde una solicitud en la URL. El segundo fallo en el motor de plantillas —CVE-2025-48828— permite eludir el filtro de funciones "inseguras" gracias al uso de trucos en PHP, como invocar variables como si fueran funciones (${'assert'} y construcciones similares). Así, el sistema acepta el código malicioso como válido.
La combinación de estos dos fallos se convierte en una herramienta poderosa: basta con una sola solicitud para insertar un comando arbitrario y ejecutarlo en el servidor bajo el usuario del entorno web. En la mayoría de los casos, se trata de www-data en Linux, lo que abre la puerta a la descarga de backdoors, ejecución de scripts y un acceso más profundo al sistema.
Tres días después de la publicación de Romano, el 26 de mayo, otro investigador —Ryan Dewhurst— detectó intentos reales de explotación. Analizó los registros de sus servidores honeypot y encontró solicitudes sospechosas hacia el endpoint vulnerable /ajax/api/ad/replaceAdTemplate. Todos los indicios apuntaban a un escaneo y al intento de insertar código PHP malicioso.
Uno de los atacantes logró ser rastreado —los ataques provenían de direcciones IP registradas en Polonia. En las solicitudes se observaba claramente el intento de cargar una webshell remota, que habría proporcionado acceso persistente al sistema y la capacidad de ejecutar comandos arbitrarios a través del navegador.
Aunque hasta ahora solo se han observado ataques que aprovechan la primera vulnerabilidad (CVE-2025-48827), la lógica de la cadena publicada sugiere claramente que también se explotará la segunda. Todos los componentes necesarios ya están disponibles, incluido un PoC público e incluso plantillas listas para usar en el sistema de escaneo automático de vulnerabilidades Nuclei, que aparecieron ya el 24 de mayo. En esencia, el guion del ataque ya está empaquetado y disponible.
Lo más preocupante es que estos fallos afectan no solo a las versiones más recientes, sino a toda la gama desde vBulletin 5.0.0 hasta 5.7.5 y desde 6.0.0 hasta 6.0.3, siempre que se utilice PHP 8.1 o superior. Las actualizaciones que corrigen las vulnerabilidades fueron publicadas el año pasado —como el Patch Level 3 para 5.7.5 y el Patch Level 1 para todas las versiones 6.*. Sin embargo, los desarrolladores no lo anunciaron de forma destacada, por lo que muchos administradores simplemente desconocían la importancia crítica del parche.
Como resultado, una cantidad significativa de foros sigue siendo vulnerable. Incluso quienes han instalado las últimas versiones mayores, pero no aplicaron las actualizaciones menores, están en riesgo. Esto es especialmente preocupante para proyectos con alto tráfico, donde un ataque puede derivar en robo de datos de usuarios, modificación de contenidos y la completa compromisión del recurso.
vBulletin sigue siendo uno de los motores de foros más extendidos en PHP/MySQL, utilizado por miles de sitios en todo el mundo. Gracias a su arquitectura modular y al soporte de API móviles, es adecuado tanto para comunidades pequeñas como para grandes plataformas comerciales. Pero esta misma flexibilidad y capacidad de expansión de la plataforma ofrecen una amplia superficie de ataque —y una vez más demuestran cuán importante es actualizar incluso los componentes que parecen "inofensivos".
vBulletin ya ha sido objeto de notorios hackeos anteriormente. En el pasado, vulnerabilidades en su código permitían a los atacantes acceder a bases de datos de usuarios, publicar anuncios maliciosos y utilizar la plataforma como punto de entrada a sistemas más grandes. Los fallos actuales pertenecen a la misma categoría: fáciles de explotar, pero extremadamente destructivos cuando se usan de forma masiva.
Los desarrolladores recomiendan a los administradores de foros instalar de inmediato las actualizaciones de seguridad y, si es posible, migrar a la versión vBulletin 6.1.1, en la cual se han solucionado los problemas descritos. De lo contrario, los sitios siguen expuestos a ataques a través de plantillas, API y vulnerabilidades a nivel del núcleo.