The move is a shock for the Basque club, who had been convinced that the midfielder would spend a second season in San Sebastian.
Madrid boss Zinedine Zidane decided on the last-minute change of plans in the wake of Madrid's defeat to Manchester City on Friday.
Madrid are not planning to make any significant signings this summer but their Champions League elimination has forced the club to reconsider Odegaard's future.
Sources at Sociedad told ESPN that they are surprised by the decision, as the clubs had discussed the matter just weeks earlier and had a verbal agreement that Odegaard would play at Anoeta for another year.
Last summer the clubs agreed to a two-season loan for Odegaard, but the second year had to be formally ratified this summer, with Spanish federation rules only allowing for season-long loans.
The playmaker has been a huge success in San Sebastian, becoming one of the best players in La Liga -- especially in the first half of the season -- as the team challenged for a Champions League place, before dropping off after the La Liga restart.
The decision has been taken by Zidane, and now Odegaard himself has to sign off on the move.
Speaking to ESPN last October, the Norway international made it clear that his intention was to spend two seasons at Sociedad in order to play regular football and continue his development.
"My intention is to stay here for two years and I think it's important for me," he said. "I've changed teams for two seasons in a row. For young players and for me it's good to have some stability."