Factors causing vulnerabilities are:
Design flaws: If there are loopholes in the system that can allow hackers to attack the system easily.
Passwords: If passwords are known to hackers they can get the information very easily. Password policy should be followed rigorously to minimize the risk of password steal.
Complexity: Complex software can open doors on vulnerabilities.
Human Error: Human error is a significant source of security vulnerabilities.
Management: Poor management of the data can lead to the vulnerabilities in the system.