RFC 1135 (rfc1135) - Page 2 of 33
Helminthiasis of the Internet
Alternative Format: Original Text Document
RFC 1135 The Helminthiasis of the Internet December 1989
A "virus" is a piece of code that inserts itself into a host,
including operating systems, to propagate. It cannot run
independently. It requires that its host program be run to
activate it.
In the early stages of the helminthiasis, the news media popularly
cited the Internet worm to be a "virus", which was attributed to
an early conclusion of some in the computer community before a
specimen of the worm could be extracted and dissected. There are
some computer scientists that still argue over what to call the
affliction. In this RFC, we use the term, "worm".
1.1 Infection - The Worm Attacks
The worm specifically and only made successful attacks on SUN
workstations and VAXes running Berkeley UNIX code.
The Internet worm relied on the several known access loopholes in
order to propagate over networks. It relied on implementation
errors in two network programs: sendmail and fingerd.
Sendmail is a program that implements the Internet's electronic
mail services (routing and delivery) interacting with remote sites
[1, 2]. The feature in sendmail that was violated was a non-
standard "debug" command. The worm propagated itself via the
debug command into remote hosts. As the worm installed itself in
a new host the new instance began self-replicating.
Fingerd is a utility program that is intended to help remote
Internet users by supplying public information about other
Internet users. This can be in the form of identification of the
full name of, or login name of any local user, whether or not they
are logged in at the time (see the Finger Protocol [3]).
Using fingerd, the worm initiated a memory overflow situation by
sending too many characters for fingerd to accommodate (in the
gets library routine). Upon overflowing the storage space, the
worm was able to execute a small arbitrary program. Only 4.3BSD
VAX machines suffered from this attack.
Another of the worm's methods was to exploit the "trusted host
features" often used in local networks to propagate (using rexec
and rsh).
It also infected machines in /etc/hosts.equiv, machines in
/.rhosts, machines in cracked accounts' .forward files, machines
cracked accounts' .rhosts files, machines listed as network
gateways in routing tables, machines at the far end of point-to-
Reynolds