At least 31 people have died after a ferry carrying about 250 passengers and crew caught fire in the southern Philippines.

A provincial governor confirmed that 31 people had drowned or died in the blaze, with search and rescue efforts continuing for at least seven missing passengers.

The MV Lady Mary Joy 3 has been towed to the shore in the southern island province of Basilan.

The ferry was en route to the Sulu province from the southern port city of Zamboanga when it caught fire close to midnight local time, Jim Hataman, governor of Basilan, said.

The bodies of 18 individuals were discovered in a passenger cabin.

“These victims perished onboard due to the fire,” Mr Hataman added.

At least 23 passengers were injured and taken to hospital. It was discovered that some additional travellers were not listed on the vessel’s documentation.

More on Philippines

“Some of the passengers were roused from sleep due to the commotion caused by the fire. Some jumped off the ship,” Mr Hataman continued.

Frequent storms and badly maintained boats mean that accidents at sea are common in the Philippine archipelago. Overcrowding and patchy health and safety regulations, especially in remote provinces, also contribute.

More than 4,300 people died in December 1987, after the ferry Dona Paz sank after colliding with a fuel tanker. It is known as the world’s worst peacetime maritime disaster.