The former Rangers striker, who scored 31 league goals in 104 games for the Scottish outfit, spent last season with Swiss outfit Sion.
"I'm delighted to be here. Palermo tried to sign me in January but unfortunately we couldn't close the deal. Now I can't wait to get started," he told reporters at a press conference.
"When I was younger I watched a lot of Italian football and I know there's a very passionate fanbase here at Palermo."
Lafferty last season played under former Italian international Genaro Gattuso, who was appointed Palermo boss this summer.