Leg-spinner Seekkuge Prasanna has been called up to replace Karunaratne, who suffered a broken finger during a practice session.
The International Cricket Council has approved the switch, while slow left-armer Herath needs to recover from a knock on a finger suffered against England last Sunday.
Sri Lanka???s next match in Pool A is against Australia in Sydney on Sunday and experienced batsman Mahela Jayawardene said: “Dimuth is unfortunate, he fractured his finger in fielding practice on Thursday, so he’s been declared unfit, he probably needs an operation.
“I’m not sure how bad or long it will take but he’s definitely going back home.
“With Rangana, he’s had stitches in his fingers so we need to give him five or six days for it to heal properly, then the stitches will come off then we’ll see how he progresses.”
Left-handed batsman Kusal Janith Perera, who has an average of 23.30 from 41 one-day internationals, has been put on standby to replace Karunaratne.
Prasanna has been summoned as precautionary cover for Herath, who split the webbing in his bowling hand trying to take a return chance off Jos Buttler.