At least 24 people have been killed after a passenger bus plunged 100 metres into a ravine off a road in the southern region of Peru, local media has reported.

Local media said the accident on Wednesday occurred on the Arequipa-Puno road in the city of Arequipa. The bus was travelling from the Puno region to Arequipa on a tight bend.

"Insecurity and a lot of fear on this bus. People get on it because they leave [work] later," said an unidentified relative of a victim.

Peruvian broadcaster Channel 7 showed images of the bus hanging down a cliff face, while rescue personnel worked to extract bodies from the wreckage.

The causes of the accident are being investigated.

An unidentified witness, said tiredness and high speed were likely to blame.

"There are two issues I am able to comment on as a fellow driver. One, tiredness and the other speed and excess in confidence, combined. Bus drivers these days drive recklessly."

Rescue efforts were hampered by the steep cliff and rocky terrain.

At least 20 people were reportedly injured and survivors were taken to a local hospital for treatment. The public bus is privately operated by a company called Andares.

Source: Agencies