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.