A vulnerability is a software error or weakness that allows some kind of unauthorized access when they are used or exploited. Typically, a vulnerability is a software bug or misconfiguration which affects the operation of an operating system or other program run on a computer allowing it to be more easily accessed. It may also allow data to be read or modified without permission. Computer system attackers, worms, viruses, and trojans use vulnerabilities to gain access to computer systems without the user's knowledge.