Ce sont des erreurs de programmation courantes, et elles ouvrent des failles de sécurité béantes dans les logiciels : la NSA (National security agency), agence fédérale américaine de sécurité, a mis en oeuvre un programme pour déterminer les 25 plus courantes. Ce top 25 se divise en trois catégories : les interactions non sécurisées entre composants (9 erreurs), une gestion hasardeuse des ressources (9 erreurs) et des défenses poreuses (7 erreurs). D'après les responsables du projet, deux seulement de ces erreurs ont provoqué en 2008 quelque 1,5 million de failles dans les sites Web, et se sont répercutées dans les PC visitant ces sites, les transformant en zombies. Le projet, initié par la NSA et la division cyber-sécurité du ministère américain de la Sécurité intérieure, a vu la collaboration de plusieurs instituts (Sans, Mitre, Secunia...) et éditeurs (Microsoft, Oracle, RSA, Symantec...). Le chef du projet explique que si les débats ont été parfois chauds, il y a eu un consensus plutôt large pour établir ce top 25 des erreurs de programmation les plus courantes ouvrant des failles de sécurité. Les agences fédérales américaines espèrent, en publiant la liste des erreurs et la façon de les empêcher, faire prendre conscience aux développeurs des conséquences en matière « de cyber-espionnage et de cyber-crime ». Car étonnamment, poursuit Bob Martin, du Mitre (organisme à but non lucratif travaillant à la sécurisation des systèmes gouvernementaux américains), « la plupart de ces erreurs ne sont pas bien connues des développeurs ; le moyen de les éviter peu enseigné par les écoles ; et leur présence rarement testée par les éditeurs de logiciels commerciaux ».