COMMAND
ircd 2.9.5 & ircii-pana DNS problems
SYSTEMS AFFECTED
Systems running above
PROBLEM
Michal Zalewski found interesting problem with ircd up to 2.9.5.
RFC 1035, "DOMAIN NAMES - IMPLEMENTATION AND SPECIFICATION":
[...]
The labels must follow the rules for ARPANET host names. They
must start with a letter, end with a letter or digit, and have
as interior characters only letters, digits, and hyphen.
There are also some restrictions on the length. Labels must
be 63 characters or less. ^^^^^^^^^^^^
^^^^^^^^^^^^^^^^^^^^^^^^^
The same sentence can be found in RFC 1034, "DOMAIN NAMES -
CONCEPTS AND FACILITIES", and, in fact, 63 characters are host
name limit for modern systems. As amended by RFC1123, section 2.1:
Host software MUST handle host names of up to 63 characters
and SHOULD handle host names of up to 255 characters.
Unfortunately, ircd is 'not quite' able to handle 63-characters
long hostname. You need access to your domain name server to
create 63-chars long host name. Please, check twice if it's
extactly 63-chars long, including dots abnd domain name. NOTE:
Setting an alias for your machine won't work. You should modify
primary host name.
Now, propagation of your new host name could take a longer period
of time (usually less than one week) - of course if you're testing
ircd outside your own domain. When everything is done, you can
try to enter IRC from prepared machine. You'll notice something
really funny - ircd crops your real name, hostname and ident!
Typical '/whois nick' should return something like that:
/whois lcamtuf
*** on irc via server genome.ml.org (Genome IRC Server)
*** lcamtuf has been idle 26 seconds
Username and host mask has been stripped by ircd! Pretty nice bug.
But (of course!) that's not all. Other irc users can't guess who
are you, ban you from their channel, nor do anything else, because
there's no way to obtain required informations about your
connection. Even /who #channel returns just a nice junk instead
of useful data ('never named...' is my REALNAME):
#test H@ 0 never@named... (~lcamtuf genome.ml.org lcamtuf )
And now, the game begins... When testing session joined channel,
BitchX (popular irc client by panasync) left irc with following
message from ircd:
*** Signoff: lcamtuf (Read error to lcamtuf[]: EOF from client)
But what happened? That's how it looks from BitchX client's side
(gdb output):
Program received signal SIGSEGV, Segmentation fault.
0x80d2a16 in find_bestmatch ()
SOLUTION
Nothing yet.