Ejecución remota de código en el cliente de Steam

La vulnerabilidad, de tipo buffer overflow, permite tomar el control de los ordenadores que accedan a la información de un servidor de juego online malicioso.

steam_logo_art_2000.0

La mayoría de los videojuegos de Steam cuentan con funcionalidades online para que los jugadores monten sus propias partidas con sus propias reglas. Algunos ejemplos de juegos son Counter Strike: Go, Half Life 2 o Team fortress 2. El protocolo empleado, basado en UDP, se encuentra documentado por la propia Valve, empresa responsable del servicio.

Es en este protocolo en el que se ha encontrado una vulnerabilidad, y más concretamente, en el parámetro ‘A2S_PLAYER’ del componente ‘serverbrowser’. El valor, el cual almacena el nombre del jugador, es convertido a UTF-8 en algún punto del componente afectado, permitiendo la explotación.

La vulnerabilidad, que ha sido recompensada con 18.000$, ha sido explotada con éxito en Windows 8.1 y Windows 10, aunque también podría ser vulnerable GNU/Linux, a pesar de no haberse completado la explotación. En OS X, no ha podido comprobarse debido a la protección del sistema operativo, que cierra el proceso al detectar el buffer overflow.

La explotación, para la cual ya existe una prueba de concepto, es bastante sencilla, pudiéndose realizar de 2 maneras con una probabilidad de éxito del 0.2%, debido a que se desconoce la dirección base por el ASLR. No obstante, el fallo podría juntarse con un ‘memory leak’, para aumentar dicho porcentaje al 100%.

 

La primera forma de explotación consiste en que un usuario haga clic derecho en en un servidor malicioso del listado de servidores de un juego, y verifique la información del servidor. Si el servidor está lleno, ésta es la vista por defecto, y sólo es necesario que se haga clic.

La segunda manera sólo requiere que la víctima acceda a una web maliciosa, la cual abrirá el servidor malicioso en la aplicación de Steam gracias al protocolo asociado (por ejemplo, ‘steam://connect/1.2.3.4’). La mayoría de los navegadores tienen la aplicación de Steam asociada, y está configurada para abrirse por defecto sin preguntar.

El fallo ha sido resuelto por Valve en las 3 plataformas afectadas, por lo que ya no existe riesgo de explotación. Al actualizarse el cliente de Steam con cada inicio, el riesgo de encontrar un cliente desactualizado con esta vulnerabilidad es mucho menor.

Fuente:

Steam Server Queries documentation:
https://developer.valvesoftware.com/wiki/Server_queries

RCE on Steam Client via buffer overflow in Server Info:
https://hackerone.com/reports/470520

Powered by WPeMatico

Gustavo Genez

Informático de corazón y apasionado por la tecnología. La misión de este blog es llegar a los usuarios y profesionales con información y trucos acerca de la Seguridad Informática.