大家熟知的游戏平台Steam客户端,竟然存在了一个至少10年的远程代码执行漏洞……近日有安全公司的研究人员Tom Court曝出了这一发现。据悉,这个漏洞会影响到每月1500万的活跃用户,因此游戏公司Valve在收到安全通知后,12小时内就放出了安全补丁。
Steam客户端发现远程代码执行漏洞
Steam客户端程序库的堆积(Heap)崩溃漏洞能被远端触发,该区代码是用来处理并重组多个UDP数据封包,Steam客户端依赖自定义协议进行通讯,这个协议建立于UDP之上。简单来说,这个错误发生于,客户端程序没有对分段数据包的第一个封包进行基本的检查,来确保指定的封包长度小于或是等于总数据包的长度,Tom Court认为这是一个疏忽,因为在后续传输的封包都有经过检查。
在现阶段的操作系统中,单独的堆积崩溃漏洞很难控制,因此也不容易被利用于远程代码执行攻击,但是Steam自定义的内存分配器,以及在2017年7月之前,steamclient.dll二米档中还没有使用绕过地址随机化(Address Space Layout Randomisation,ASLR)保护技术,因此大幅提高了这个漏洞被利用的可能性。
在Tom Court看来,这是一个简单的漏洞,在缺乏现代化信息安全技术的保护下,漏洞被利用起来也相对简单许多。他在今年2月告知Valve该漏洞,而Valve也在12小时内就在客户端测试版发布了修正补丁,并在3月22日以将正式版推送给所有玩家,目前没有证据显示该漏洞曾被利用来发动攻击。
不过,这个漏洞之所以存在这么久还没有被发现,Tom Court认为,由于这部分程序运作良好,开发者似乎也没有特别的理由更新。但显然这对于程序开发商来说,倒应该是一个很好的教训,而且定期检查包含老旧代码在内的程序,无疑就变得更为重要了。