Stapleton, 30, played 52 Super League games for the Reds, winning their player of the year award in 2008 and 2009 before leaving at the end of last season.
Rabbitohs CEO Shane Richardson said: “Craig will add depth to our forward stocks for the rest of 2010 and will help galvanise our forward pack with his tough style of play.
“He has a high work-rate and doesn’t shirk any of the hard work. He has shown he can play at the top level and we’re looking forward to having him assist our charge towards the finals this year.”
Stapleton has previously played in the NRL for Cronulla, Penrith, Parramatta and St George, playing a total of 105 games.
He goes straight in the Souths squad for their game against Brisbane on Sunday.