View Issue Details

IDProjectCategoryView StatusLast Update
0003205unrealircdpublic2007-01-22 07:13
Reportermyster0 Assigned To 
PrioritynormalSeveritycrashReproducibilityalways
Status closedResolutionno change required 
Product Version3.2.6 
Summary0003205: Crash in PROTOCTL CLK
DescriptionWhen an ulined server with PROTOCTL CLK send a parameter different from * for the cloaked host Unreal crash instead of disconnecting it with an error.
Steps To ReproduceThe service send this :
PROTOCTL NICKv2 UMODE2 VL SJ3 NS TKLEXT CLK
PASS hidden
SERVER link.test.org 1 :U2309-Fh6XiOoE-51 Nymphes Services Link v1.0.0.0
TKL + Q * Polymnie 51 0 0 :Reserved for services
TKL + Q * *`? 51 0 0 :Reserved for Linker
NICK Polymnie 0 0 Polymnie Link.Test.Org link.test.org 1169092491 +oSqB * Link.Test.Org :Link - Nymphes Services

Unreal crashes after this according to debug.log
Additional Informationoutput of gdb :
#0 0xa7f9f410 in ?? ()
#1 0xafd2f74c in ?? ()
#2 0x00000006 in ?? ()
#3 0x00000af2 in ?? ()
#4 0xa7cb5811 in raise () from /lib/tls/i686/cmov/libc.so.6
#5 0xa7cb6fb9 in abort () from /lib/tls/i686/cmov/libc.so.6
#6 0x0808ec5f in decode_ip (buf=0x8196036 "Link.UltimeVision.Org") at support.c:1943
#7 0xa7c66d8c in _register_user (cptr=0x8195ef8, sptr=0x81963b8, nick=0x81963e1 "Polymnie", username=0x8195fee "Polymnie", umode=0x819602e "+oSqB", virthost=0x8196034 "*",
    ip=0x8196036 "Link.UltimeVision.Org") at m_nick.c:1164
0000008 0xa7c69a23 in m_user (cptr=0x8195ef8, sptr=0x81963b8, parc=9, parv=0x8124e6c) at m_user.c:214
#9 0xa7c683cd in m_nick (cptr=0x8195ef8, sptr=0x81963b8, parc=12, parv=0x8124e60) at m_nick.c:777
#10 0x08068f87 in parse (cptr=0x8195ef8, buffer=0x8195fdc "NICK", bufend=0x8196068 "") at parse.c:450
#11 0x08068260 in dopacket (cptr=0x8195ef8,
    buffer=0x80b8000 "TKL + Q * Polymnie 51 0 0 :Reserved for services\nTKL + Q * *`? 51 0 0 :Reserved for Linker\nNICK Polymnie 0 0 Polymnie Link.UltimeVision.Org link.ultimevision.org 1169092491 +oSqB * Link.UltimeVision.O"..., length=dwarf2_read_address: Corrupted DWARF expression.
) at packet.c:138
#12 0x08058bd7 in read_message (delay=1, listp=0x8157a80) at s_bsd.c:1475
#13 0x080634f0 in main (argc=0, argv=0x0) at ircd.c:1596
3rd party modulesnone

Activities

Dukat

2007-01-21 04:56

reporter   ~0013072

Don't do that then...

serverprotocol.html says:
Note: Because each server normally does its own cloak generation, Unreal does not expect to receive NICK messages with the CLK info, so do not send it. It will send this info to a server it has received a PROTOCTL CLK from however.

djGrrr

2007-01-21 08:07

reporter   ~0013074

NOTHING that you send a server should be able to make it crash, so this definetly is a bug, and a fairly serious one by the looks of it

syzop

2007-01-22 07:13

administrator   ~0013087

Our current position is that, once a server is linked, a server is "trusted". This means we fully trust what it does, this ranges from access rights checking to syntax checking. In short: it's easy to cause another server to crash if you don't know what you are doing. This is why you shouldn't be toying with things on a livenet :P. This is also why services discourage the use of RAW (and have huge disclaimers).

While I've considered rethinking this position, my conclusion - certainly for now with scarce resources - is that we should dedicate developer resources on other things, and stick with our current position.

I'll see if I can add a FAQ item for this.

I don't know if serverprotocol.html also warns of this, if not then it should.

Issue History

Date Modified Username Field Change
2007-01-17 22:04 myster0 New Issue
2007-01-17 22:04 myster0 3rd party modules => none
2007-01-21 04:56 Dukat Note Added: 0013072
2007-01-21 08:07 djGrrr Note Added: 0013074
2007-01-22 07:13 syzop Status new => closed
2007-01-22 07:13 syzop Note Added: 0013087
2007-01-22 07:13 syzop Resolution open => no change required