A spokesman for NSW Ambulance told AAP on Friday that emergency services were called to Lighthouse Beach in Port Macquarie about 10am after reports of a shark attack.
Paramedics arrived to find the 44-year-old man, who was reported to be surfing alongside others at the beach, had suffered injuries to his upper and lower left leg.
Chief Inspector Martin Burke, from the Mid North Coast Police District, said the man managed to fight off the predator.
"The reports are the man has tried to fight this shark for up to 30 seconds and has then swum himself to shore where he has realised he has sustained significant lower leg injuries," he told radio station 2GB.
The surfer was transported to Port Macquarie Base Hospital, and remains in a critical condition after emergency surgery.
Lighthouse Beach - a popular surf spot - is unpatrolled at this time of year, with regular surf lifesaving patrols due to start in a few weeks' time for the school holidays.
Port Macquarie Hastings Council has 15 smart drumlines along the region's coast, with two drones and a listening station also deployed to detect tagged sharks.
A number of great white sharks have been tagged and released in the area recently, including a 2.28-metre shark at nearby Shelly Beach on Tuesday and a 2.96-metre shark at North Shore Beach on Saturday.
Lighthouse Beach has been closed following the incident and is expected to remain off-limits for another 24 hours, according to local lifeguards who said a drone had been sent up to find the shark and determine its size and species.
"We hope and pray for a good outcome for the victim involved," they said in a Facebook post.