Old English wurm, variant of wyrm "serpent, snake, dragon, reptile," also in later Old English "earthworm," from Proto-Germanic *wurmiz (source also of Old Saxon, Old High German, German wurm, Old Frisian and Dutch worm, Old Norse ormr, Gothic waurms "serpent, worm"), from PIE *wrmi- "worm" (source also of Greek rhomos, Latin vermis "worm," Old Russian vermie "insects," Lithuanian varmas "insect, gnat"), from PIE *wrmi- "worm," from root *wer- (2) "to turn, bend."
The ancient category of these was much more extensive than the modern, scientific, one and included serpents, scorpions, maggots, and the supposed causes of certain diseases. For substitution of -o- for -u-, see come. As an insult meaning "abject, miserable person" it dates from Old English. Worms "any disease arising from the presence of parasitic worms" is from late Old English. Can of worms figurative for "difficult problem" is from 1951, from the literal can of worms a fisherman might bring with him, on the image of something all tangled up.