Steyn has a mild left side strain while Kallis, who made his comeback to the 50-over format at the start of the series, has a badly sprained joint on the little finger of his right hand.
The pair were released from the squad for the final match against Pakistan, who are aiming for a 3-0 sweep, as a precautionary measure so they could be in "prime condition," for the upcoming series against India, according to team manager Mohammad Moosajee.
South Africa are in the midst of a busy limited-overs programme which includes 11 ODIs and four T20s in the space of six weeks and it seems to be taking its toll on some players.
Steyn played in all four T20s but in only four of the seven ODIs. He was seen in some discomfort during first ODI in Cape Town on Sunday, where he was holding his left side but played in the second match of the series in Port Elizabeth on Wednesday. This is not his first side strain this year - the condition also plagued him during the Champions Trophy.
Kallis's problem may be more of a concern. He made a return to the ODI team after an absence of a year and nine months as part of a plan to play in the 2015 World Cup. At 38, he scored a half-century in the first ODI and looked to be settling back into the side.
He replaced Faf du Plesiss - who was dropped for the series against Pakistan and India - which leaves South Africa without a replacement batsman. Wayne Parnell may be brought in as an additional allrounder with Ryan McLaren also likely to feature in Saturday's XI.
Morne Morkel, who did not play the previous ODI and was also rested from one of the T20s, or Vernon Philander are the candidates to replace Steyn.