The man, a 27-year-old Swiss citizen, carried out the attack on a train travelling in Switzerland’s far east, along its border with Liechtenstein, and was also injured, regional police in Saint Gallen said in a statement.
Police said the attack had taken place at around 2:20 pm (1220 GMT) near the Salez station on a train running between Buchs and Sennwald and that some of the injuries were serious.
“According to the information we have for the time being, the 27-year-old Swiss man poured out a flammable liquid … (which) caught fire,” police said, adding that the man “was also armed with at least one knife”.
Seven people including the suspected attacker were admitted to various hospitals with burn and stab wounds, the statement said.
The victims included two men aged 17 and 50, and three women aged 17, 34 and 43. Dozens of people were on the train at the time of the attack, the police statement said.
A massive contingent of rescue workers rushed to the scene, including police, firefighters, ambulances and three rescue helicopters. The Salez station remains closed, and police said replacement buses had been set up.
Saint Gallen prosecutors have opened a criminal investigation into the attack. Police said the train had suffered damages upwards of 100,000 Swiss francs ($103,000, 92,000 euros).