The Black Watch, owned by the Fred Olsen line, docked at Rosyth in Fife yesterday after cutting short its 12-night voyage to Scandinavia and Russia.
A total of 130 passengers were said to have contracted gastroenteritis during the cruise, forcing the ship to return to port.
The bug, which causes vomiting, diarrhoea and stomach cramps, is easily transferred from person to person and the liner has now been decontaminated.
Specialist cleaners were brought in to clean and fumigate the ship, which originally departed Rosyth on September 8. There were 778 guests on board for the duration of the cruise.
When the boat moored in Rosyth yesterday 29 passengers were still unwell, although they are expected to make a full recovery. Health inspectors have also been called in to give their verdict on the spread of the bug.
A Fred Olsen spokeswoman said: "We can confirm that during Black Watch's 12-night Scandinavia and St Petersburg cruise, there was an outbreak of a gastroenteritis-type illness, and every effort was made to contain the illness, in accordance with Fred Olsen Cruise Lines onboard medical protocols.
"Black Watch returned to Rosyth on Friday, where she is currently undergoing an intensive cleaning and sanitisation programme, which includes a complete ship fumigation.
"Representatives from the local health authorities and Rosyth Port Health have been on board the ship this morning, and have confirmed that they are satisfied with the containment and preventative measures being undertaken by the ship."
She added it was "frustrating" that the outbreak had occurred despite extra preventative and containment measures.
She said: "A number of guests on board suffered from this illness, which is common in hospitals, schools, hotels, cruise ships and other areas where people are in close proximity. Symptoms include a sudden onset of vomiting and/or diarrhoea. Some people may have a temperature, headache and stomach cramps.
"The sickness usually abates within one or two days, and there are no long-term effects."
The spokeswoman added that the liner was due to set off last night for an Iberian cruise, and that passengers had been informed of the situation.