The 18-year-old Germany youth international has impressed since breaking into the Gunners first team and scored his first senior goal for the club in the 2-1 win at Swansea last month.
That came a week after he made his full Premier League debut in the win over Stoke.
Gnabry, who signed his first professional contract last year after shining in the club's youth ranks, made his Arsenal debut in the 6-1 win over Coventry in last season's Capital One Cup.
His Premier League bow came as a substitute in the defeat to Norwich in October 2012 and four days later he came off the bench in the Champions League clash with Schalke. In doing so, the former Stuttgart youngster became the second youngest Arsenal player to appear in both competitions, after Jack Wilshere.
Arsenal manager Arsene Wenger has high hopes for the speedy teenager, saying on www.arsenal.com: "We signed Serge Gnabry because I believe that he will be a great player.
"He's nearly there now, and competes for a regular place in the team in the Premier League.
"He has technical ability, he has power, he has pace, he has finishing quality and he can give a final ball. He's a powerful offensive player and I believe that he will be a great player for Arsenal football club."
Gnabry said: "Arsenal is a great football club and I'm so happy to be here and sign a new contract. For me, now it's all about working hard and developing my game.
"I've had some good opportunities recently in the first team, which has given me extra confidence, and this will only improve my game. I'm looking forward to giving my best for this club in the years to come."