UUCP
is one of the oldest major subsystems of the
UNIX
operating system (older than the
csh
), and
it has had its share of security holes. All of the known security
problems have been fixed in recent years. Unfortunately, there are
still some old versions of
UUCP
in use.
The main
UUCP
security problems were most
easily triggered by sending mail messages to addresses other than
valid user names. In one version of
UUCP
, mail
could be sent directly to a file; in another version of
UUCP
,
mail could be sent to a special address that caused a command to
be executed - sometimes as
root
! Both
of these holes pose obvious security problems. [8]
Fortunately, you can easily check to see if the version of
UUCP
you are running contains these flaws. If
it does, get a software upgrade, or disable your version of
UUCP
.
A current version of
BNU
UUCP
can be licensed from AT&T if your vendor doesn't
have one.
To check your version of
UUCP
,
follow the steps outlined here:
-
Your
mail system should
not allow mail to be sent directly to a file. Mailers that deliver
directly to files can be used to corrupt system databases or application
programs. You can test whether or not your system allows mail to
be sent to a file with the command sequence:
$ mail /tmp/mailbug
this is a mailbug file test
^D
If the file
mailbug
appears in the
/tmp
directory, then your mailer is unsecure. If your mailer returns
a mail message to you with an error notification (usually containing
a message like "cannot deliver to a file"), then
your mail program does not contain this error. You should try this
test with
/bin/mail
,
/bin/rmail
,
and any other mail delivery program on your system.
-
Your
UUCP
system
should not allow commands to be encapsulated in
addresses.
This bug arises from the fact that some early
uuxqt
implementations used the
system ( )
library
function to spawn commands (including mail). Mail sent to an address
containing a backrsquoed command string would cause that command
string to be executed before the mail was delivered. You can test
whether or not your system executes commands encapsulated in addresses
with the command sequence:
$ uux - mail 'root `/bin/touch /tmp/foo`'
this is a mailbug command test
^D
$ uux - mail 'root & /bin/touch /tmp/foo'
this is another test
^D
The
system should return mail with a message that
/bin/touch
/tmp/foo
is an unknown user. If the mailer
executed
the
touch
- you can tell because a
foo
file will be created in your
/tmp
directory - then
your
uux
program is unsecure. Get a new version
from your vendor.
-
Check both types of addresses described
earlier for mail that is sent by
UUCP
as well
as for mail that originates locally on your system. For example,
if the machines prose and idr are connected by
UUCP
,
then log onto
idr
and
try:
$ mail 'prose!/tmp/send1'
Subject: This is a mailbug test
Test
^D
$ mail 'prose!`/bin/touch /tmp/foo`'
Subject: This is a mail bugtest #2
Another test.
^D