Marshall, who turns 36 next month, has played 324 NRL games and will become just the tenth player of the NRL era to play past his 36th birthday.
He'll be the oldest player in the competition should Cameron Smith not play on.
Marshall's career appeared to be over after he was released by Wests Tigers last year but he's been thrown a lifeline by Rabbitohs coach Wayne Bennett for a second time after Bennett revitalised Marshall's career at Brisbane on a cut-price deal in 2017.
"I couldn't sleep last night, I was that excited. It felt like it was the first day at school," said Marshall.
"It's an opportunity for me to not only play, but to go out winning a competition. With this squad here, the coaches, it's a great opportunity for that and that's my goal."
Bennett and Marshall, who's played 31 tests for the Kiwis, also joined forces in 2008 when New Zealand pulled off a stunning upset in the World Cup final against Australia.
"Benji is a leader of men, he has been playing at the highest levels of the game over a long and distinguished career and he comes with the highest of recommendations from Wayne Bennett," said Rabbitohs head of football Mark Ellison.
"His experience and knowledge that he can pass down to the young up-and-coming halves we have at the club will be priceless."