sábado, 22 de julio de 2017

Ejecución remota de código en el SDK Source de Valve

El investigador privado Justin Taft (@JustTaft), perteneciente a la firma One Up Security, ha demostrado recientemente que el motor de juegos Source de la empresa Valve se veía afectado por una ejecución remota de código que ha sido finalmente solucionada.

Source es el motor oficial de videojuegos utilizado por Valve para sus diferentes títulos, como Counter Strike:GO, Teamfortress 2, Half-Life 2: Deathmatch, etc... y también usado por terceros de manera gratuita, para el desarrollo de mods propios.

La vulnerabilidad se debe a una falta de comprobación de límites en la función 'nexttoken', al no controlar correctamente que el buffer 'token' pueda desbordarse. Este desbordamiento (buffer overflow) podría ser aprovechado como se puede ver en el video publicado, para ejecutar código arbitrario, ya que la función afectada es llamada por un una clase (CRagdollCollisionRulesParse) encargado de cargar datos externos de modelos Ragdoll cuando se realizan determinados eventos, por ejemplo cuando un jugador es eliminado.

Video demostrativo de la vulnerabilidad:




Desde Valve se han publicado las actualizaciones oportunas tanto del SDK como del cliente Steam, aunque también existes contramedidas y/o parches disponibles para los mods ya publicados, facilitadas por el investigador:

Parche disponible:
https://oneupsecuritycdn-8266.kxcdn.com/static/blog/hl2-rce/nexttoken.patch


Más información:

Remote Code Execution In Source Games
https://oneupsecurity.com/research/remote-code-execution-in-source-games

Update Released for Counter-Strike: Source, Day of Defeat: Source, Half-Life Deathmatch: Source, Half-Life 2: Deathmatch, and the Source SDK 2013 Base
http://store.steampowered.com/news/30120/


José Mesa