According to the German specialist website ran.de, the move was hammered out in August between Bayern and the Spanish club at the time of Dutch star Arjen Robben's transfer to Munich.
Bayern did not pay Real the agreed €25 million price for the Dutch winger, instead sitting on the cash in anticipation of the Ribery deal, said ran.de, which is owned by German private broadcaster Sat.1.
Ribery, 26, who has been out of action through injury for over two months, has made no secret in the past of his desire to join Real.
"I would really like to win the Champions League, but our team doesn't have the necessary firepower right now," the winger told the Bild daily recently.
"At the moment, we can't compete with Barcelona, Real Madrid, Arsenal and Inter."
Other recent reports have linked Ribery with a move to Chelsea.