COMMAND
rlogin
SYSTEMS AFFECTED
Ascend MAX/6000
PROBLEM
Sebastian Andersson found a problem with our Ascend Max/6000s
(system.sysDescr.0 = "Ascend Max-6000 E1/PRI/BRI/DPNSS S/N:
8392451 Software +7.2.0+") when a dial in user connects to another
machine via rlogin. Some of its users dial in, get a login prompt
and are authenticated against a radius server. The radius server
tells the users to connect to a unix server via rlogind.
Normaly rlogind authenticates the user, sends a NUL byte to the
rlogin client, forks and execs login and then it starts to tunnel
i/o between the login processes (or shell) and the rlogin client.
Sebastian hacked on a rlogind to authenticate, set up some
environment variables and then fork and exec uucico instead of
login. After he made that change the rlogind program, it was able
to send the NUL byte and the banner text from uucico (here= ...)
in the same IP packet.
After he did that, the max sends a lot of "crap" to the dial in
connection instead of the correct text. Running the rlogind
program under strace makes it all work correctly (because of the
extra delay between the two writes thus splitting the
authentication confirmation and the i/o in two packets). The
crap sometime contain text from other users sessions...
SOLUTION
Sebastian fixed the problem with a sleep after the first write.