Als Sicherheitslücke bezeichnet man eine Fehlfunktion in einem Betriebssystem oder Anwendungsprogramm, durch die ein Angreifer Daten von einem Personalcomputer, Server oder Netzwerkgerät stehlen oder das Gerät unter seine Kontrolle bringen kann. Seltener kommt es vor, dass die Hardware sich missbrauchen lässt, wie zum Beispiel, wenn ein Servicepasswort fest verdrahtet wurde oder eine andere Hintertür zu Servicezwecken eingebaut wurde. Bei etlichen Routern wurden solche Lücken entdeckt.
Softwarelücken entstehen entweder durch klare Fehler des Programmierers oder durch eine unübliche Nutzung der Software, die der Programmierer kaum voraussehen konnte. Häufigster Programmierfehler ist die mangelhafte Kontrolle des Stacks, wodurch ein Angriff durch Pufferüberlauf möglich wird.
Eine weitere Klasse von Sicherheitslücken entstand durch die Entwicklung der Internet-Browser, denen – zum Teil durch Addons – immer mehr Funktionen zugebilligt wurden, mit denen Sie auf die Ressourcen des Hostcomputers zugreifen konnten.