S.T.A.L.K.E.R.是由GSC Game World开发的第一人称射击游戏。 S.T.A.L.K.E.R.: Shadow of Chernobyl 函数NET_Compressor::Decompress 存在整数溢出漏洞,这个函数用于检查报文中特定的字节是否等于0xc1,如果等于的话就会执行CRC检查并使用rtc9_decompress函数(lzo1x_decompress_dict_safe)解压数据;如果数据没有压缩的话该函数会获取报文中当前数据的大小并执行memcpy(dst, data, data_size - 1),因此发送没有数据的报文就会导致服务器由于拷贝0xffffffff (0 - 1)字节而出现崩溃。
S.T.A.L.K.E.R.是由GSC Game World开发的第一人称射击游戏。 S.T.A.L.K.E.R.: Shadow of Chernobyl 函数NET_Compressor::Decompress 存在整数溢出漏洞,这个函数用于检查报文中特定的字节是否等于0xc1,如果等于的话就会执行CRC检查并使用rtc9_decompress函数(lzo1x_decompress_dict_safe)解压数据;如果数据没有压缩的话该函数会获取报文中当前数据的大小并执行memcpy(dst, data, data_size - 1),因此发送没有数据的报文就会导致服务器由于拷贝0xffffffff (0 - 1)字节而出现崩溃。