Rigs of Rods超长车辆名称远程缓冲区溢出漏洞

2007-11-22T00:00:00
ID SSV:2486
Type seebug
Reporter Root
Modified 2007-11-22T00:00:00

Description

BUGTRAQ ID: 26502

Rigs of Rods(也被称为RoR)是一款卡车、汽车、飞机等驾驶游戏模拟器。

RoR在处理超长车辆名字字段时存在缓冲区溢出漏洞,远程攻击者可能利用此漏洞导致拒绝服务。

当玩家加入到服务器时,如果在发送的MSG2_USE_VEHICLE消息中包含有超长车辆名称的话,就可能在全局dbuffer缓冲区中触发溢出。 在queueMessage中的,当接收到MSG2_USE_VEHICLE消息时,首先在车辆名称中拷贝dbuffer,然后将昵称连接到dbuffer,这就允许攻击者用最多255个字节覆盖这个缓冲区。但由于这个溢出的性质,只可能导致拒绝服务。

以下代码源自sequencer.cpp:

void Sequencer::queueMessage(int pos, int type, char* data, unsigned int len) { pthread_mutex_lock(&clients_mutex); if (type==MSG2_USE_VEHICLE) { data[len]=0; strncpy(clients[pos].vehicle_name, data, 255); //printStats(); //we alter the message to add user info strcpy(data+len+1, clients[pos].nickname); len+=(int)strlen(clients[pos].nickname)+2; ...

Rigs of Rods Rigs of Rods <= 0.33d 目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载:

<a href=http://repository.rigsofrods.com/files/RoRserver-0.33d-SP1.zip target=_blank>http://repository.rigsofrods.com/files/RoRserver-0.33d-SP1.zip</a>

                                        
                                            
                                                http://aluigi.org/poc/rorbof.zip