A firewall is a system designed to prevent unauthorized access to or from a private network. You can implement a firewall in either hardware or software form, or a combination of both. Firewalls prevent unauthorized Internet users from accessing private networks connected to the Internet, especially intranets. It is also a crucial part of a network component of securing network and is designed to address the issues of data integrity or traffic authentication and confidentiality of your internal network via NAT Policies.
Although it provides all the advantages it still has following limitations:
Firewalls cannot stop internal users from accessing websites with malicious code.
Firewalls cannot enforce your password policy or prevent misuse of passwords.
If the architect who designs the network has poor NAT policies then the firewall will just follow them, it will not secure the network beyond NAT policies.
Firewalls cannot protect against a threat that by-passes it, like a dial-in using a mobile host,
Firewalls do not provide data integrity because it is not possible, especially in large networks, to have the firewall examine each incoming and outgoing data packet for anything.
Firewalls cannot ensure data confidentiality because, even though newer firewalls include encryption tools, it is not easy to use these tools. It can only work if the receiver of the packet also has the same firewall.
Not only these based on the type of firewalls and the way they are configured we have some of the disadvantages for each of these,
Packet Filtering Firewalls
Packet Filtering Firewalls can work only on the Network Layer and these Firewalls do not support Complex rulebased models.
Circuit level gateways firewalls:
Circuit level Gateways do not filter Individual Packets. After Establishing a Connection, an Attacker may take advantage of this.
The above are some of the limitations of firewalls based on my knowledge there may be some other I would really appreciate the suggestions.