Limitations / Disadvantages of White-box Testing
White-box testing focuses only on internal logic and does not verify the logic to the specification. Also there is no way to detect missing paths and data-sensitive errors. For example if the statement in a program should be coded as "if (a-b) < 100" but is coded as "if (a-b) < 10", this would not be detectable without specification details. [Source]
White box testing will not account for errors caused by omission.
As familiarity of code and internal structure is a must, a skilled tester is required to carry out this type of testing, which increases the cost.
Also See:
White-box Testing
Advantages of White-box Testing