North Korean leader Kim Jong-un has apologised over the killing of a South Korean official at sea, calling it an "unexpected and disgraceful event", Seoul's presidential office said.

The fisheries official was shot dead on Tuesday by North Korean soldiers.

South Korea said his body was set on fire while still in the water, apparently as a precaution against coronavirus infection.

It was the first killing of a southern citizen by North Korean forces for a decade, and provoked outrage in the South.

Mr Kim was "very sorry" for the "unexpected and disgraceful event" that had "disappointed President Moon and South Koreans", rather than helping them in the face of the "malicious coronavirus", said Suh Hoon, the South's National Security Adviser.

Mr Suh was reading out a letter from the department of the North's ruling party responsible for relations with the South.

Apologies from the North - let alone attributed to Mr Kim personally - are extremely rare.

The message comes with inter-Korean ties in the deep freeze amid a stand-off in nuclear negotiations between Pyongyang and Washington.

The South's National Security Adviser was reading out a letter from the department of the North's ruling party responsible for relations with the South.

In it, North Korea acknowledged firing around ten shots at the man, who had "illegally entered our waters" and refused to properly identify himself.

Border guards fired on him in accordance with standing instructions, it said.

His body was no longer visible after the shooting and troops set his flotation device on fire in accordance with national emergency prevention regulations.

South Korea military officials say the man was interrogated while in the water over several hours and expressed a desire to defect, but was killed after an "order from superior authority".

The man, who was wearing a life jacket, disappeared from a patrol vessel near the western border island of Yeonpyeong on Monday, and North Korean forces located him in their waters more than 24 hours later.

Pyongyang has closed its borders and declared an emergency to try to protect itself against the coronavirus, which has swept the world since first emerging in neighbouring China.