L'attaque a été revendiquée par le Mouvement des talibans du Pakistan (TTP).
L'école est fréquentée par des enfants de militaires.
Cinq ou six assaillants portant des uniformes des agents de sécurité sont entrés dans l'école, ont indiqué les autorités.
Des tirs et des explosions ont été entendus au moment où des forces de sécurité tentaient d'encercler la zone.
L'armée a indiqué que la plupart des 500 élèves de l'établissement ont été évacués.
Le nombre d'élèves qui sont retenus en otage n'est pas encore connu.
Un porte-parole des talibans a déclaré que l'attaque est en représailles aux opérations de l'armée.
Des centaines de combattants talibans auraient été tués dans une récente offensive de l'armée dans le nord de la province du Waziristan et dans la69587 région voisine de Khyber.