The team didn't disclose terms of the contract.
"I'm just excited to have the opportunity," Cunningham told the team's official website. "I feel like this place will be home for me. I'm excited to get started.
"There are pieces in place that this team can win the Super Bowl. I just want to be part of something special."
Cunningham played the last two seasons with the Bears after joining the team as a free agent in 2017. He had 20 carries for 49 yards in Chicago but was a key special teams player on the roster.
"It's an understanding for the role I've developed in the league," Cunningham said of special teams. "It's the expectations teams have of me and the expectation I have of myself. I embody that as my role; I look forward to it and take pride in it.
"Anything to do with the game, I love it. That's why I've been playing for so long."
Cunningham originally entered the league in 2013 with the then-St. Louis Rams as an undrafted free agent out of Middle Tennessee State University. He has rushed for 797 yards and four touchdowns on 191 carries in his six NFL seasons. He has added 114 receptions for 1,001 yards and three scores.