Vulnerabilidad XSS en cPanel amenaza a 1,4 millones de sitios web

Investigadores de la empresa de Ciberseguridad Assetnote han encontrado una vulnerabilidad del tipo Cross-Site Scripting (XSS) que podría explotarse sin necesidad de autenticación, convirtiéndose en una amenaza potencial para millones de sitios web. Esta vulnerabilidad en particular puede ser mitigada mediante la actualización a la última versión.

cPanel es un software de panel de control de alojamiento web que está ampliamente desplegado en Internet, existiendo alrededor de 1,4 millones de instalaciones de cPanel expuestas en la Internet externa.

Investigadores de la empresa de Ciberseguridad Assetnote han encontrado una vulnerabilidad del tipo Cross-Site Scripting (XSS) que podría explotarse sin necesidad de autenticación. Además de esto, la vulnerabilidad XSS era explotable independientemente de si los puertos de gestión de cPanel (2080, 2082, 2083, 2086) estaban expuestos externamente o no. Esto significa que un sitio web en los puertos 80 y 443 también era vulnerable a XSS si está siendo gestionado por cPanel.

Sin embargo, Assetnote afirma que muchas de las instalaciones de cPanel en Internet tienen activada la función de actualización automática, lo que significa que es posible que ya no sea vulnerable sin tener que realizar una actualización manual. No obstante, en caso de no tener esta función configurada, es necesario re-establecer la actualización automática.

Acerca del código base de cPanel

Para la ejecución de las pruebas, Assetnote generó un droplet de DigitalOcean con la imagen de mercado de cPanel en Ubuntu.

Es necesario mencionar que la mayor parte de cPanel está escrita en Perl, y parte de la superficie de ataque es Perl compilado en binarios. Por lo tanto, la investigación se centró en los binarios a los que se puede acceder en el directorio /cgi-sys/ de los puertos de gestión de cPanel. Estos binarios son código Perl que había sido compilado en binarios que se suponía intencionadamente que iban a ser llamados de forma remota a través de peticiones HTTP.

Aparte de estos binarios dentro de este directorio, se denotó de que las funcionalidades básicas de cPanel y la aplicación web son atendidas a través del binario cpsrvd. Este binario está escuchando en los siguientes puertos:

cpsrvd 43328 root IPv4 218993 0t0 TCP 2082 (LISTEN)
cpsrvd 43328 root IPv4 218994 0t0 TCP 2086 (LISTEN)
cpsrvd 43328 root IPv4 218995 0t0 TCP 2083 (LISTEN)
cpsrvd 43328 root IPv4 218996 0t0 TCP 2087 (LISTEN)

cPanel aprovecha las funcionalidades de proxy inverso de Apache y la configuración se encuentra en la ruta: /etc/apache2/conf/httpd.conf. Este archivo se muestra a continuación:

Además, cPanel incluye una gran parte de su código fuente, que puede obtenerse desde una instancia de cPanel post-instalación en la ubicación /usr/local/cpanel/. Mientras que el código perl dentro de esa carpeta contiene un gran número de pistas sobre cómo funciona el enrutamiento, el binario cpsrvd es en última instancia una versión compilada de todo el perl. El código fuente encontrado en el directorio /usr/local/cpanel no parecía una imagen completa de las verdaderas funcionalidades proporcionadas por cPanel.

Análisis del Cross-Site Scripting asociado

Dentro del archivo Httpd.pm, se puede observar el siguiente fragmento de código:

El código demuestra que cualquier ruta que empezara por /cpanelwebcall/ sería enrutada a _serve_cpanelwebcall, junto con los caracteres posteriores al nombre del directorio. La función _serve_cpanelwebcall tenía este aspecto:

Mediante un análisis, se identifica a la función Cpanel::Server::WebCalls::handle como sumidero:

La investigación indica que el sumidero estaba en Cpanel::Server::Handlers::Httpd::ErrorPage, sin embargo, no se determinó el código fuente que inicializa este código Perl.

Profundizando en el código de Httpd::ErrorPage, se observó que toma una variable llamada message_html, la cual es el sumidero de esta vulnerabilidad, y la causante de la posibilidad de ataques XSS, dado que sta variable no es desinfectada de ninguna manera en las versiones vulnerables de cPanel.

Prueba de concepto

Para demostrar la vulnerabilidad, los investigadores proporcionaron las siguientes URL de prueba de concepto:

http://example.com/cpanelwebcall/aaaaaaaaaaaa
http://example.com:2082/cpanelwebcall/aaaaaaaaaaaa
http://example.com:2086/cpanelwebcall/aaaaaaaaaaaa
http://example.com:2082/cpanelwebcall/aaaaaaaaaaaa

Obteniéndose el siguiente resultado:


Acerca del impacto sobre los websites vulnerables

El impacto de esta vulnerabilidad es que el atacante es capaz de ejecutar JavaScript arbitrario, sin pre-autenticación, en casi todos los puertos de un servidor web utilizando cPanel dentro de su configuración por defecto.
Esto es debido a las reglas de proxy. Incluso en los puertos 80 y 443, el atacante es capaz de alcanzar el directorio /cpanelwebcall/ ya que está siendo proxyado a los puertos de administración de cPanel por Apache. Debido a esto, un atacante no sólo puede atacar los puertos de gestión de cPanel, sino también las aplicaciones que se ejecutan en los puertos 80 y 443.
Respecto al hecho de que los puertos de gestión de cPanel son vulnerables a este ataque de cross-site scripting, un atacante podría aprovechar esta vulnerabilidad para secuestrar la sesión de cPanel de un usuario legítimo. Una vez actuando en nombre de un usuario autenticado de cPanel, suele ser trivial cargar una shell web y obtener la ejecución de comandos.


Recomendaciones: Como remediar las vulnerabilidades asociadas

Para solucionar esta vulnerabilidad de seguridad, se recomienda a los usuarios que actualicen sus instalaciones de cPanel a cualquiera de las versiones siguientes o superiores:

  • 11.109.9999.116
  • 11.108.0.13
  • 11.106.0.18
  • 11.102.0.31

Por desgracia, muchas instalaciones de cPanel siguen siendo vulnerables, ya que no tienen activada la función de actualización automática. Es esencial que los usuarios tomen medidas inmediatas para proteger sus sitios web. Como uno de los software de panel de control de alojamiento web más populares, cPanel requiere una mayor atención por parte de la comunidad de investigadores de seguridad. Mientras que esta vulnerabilidad en particular puede ser mitigada mediante la actualización a la última versión, puede haber otras vulnerabilidades aún por descubrir al acecho dentro de la vasta superficie de ataque de cPanel.

Webinars

¿Te perdiste el en vivo? ¡Míralo ahora!

Síguenos
Suscríbete

Recibe nuestro boletín para mantenerte actualizado