25 Most Dangerous Programming Errors from the SANS Institute
Today the SANS Institute published an article outlining the Top 25 Most Dangerous Programming Errors as defined by, "...more than 30 US and international cyber security organizations..."
From the article:
Today in Washington, DC, experts from more than 30 US and international cyber security organizations jointly released the consensus list of the 25 most dangerous programming errors that lead to security bugs and that enable cyber espionage and cyber crime. Shockingly, most of these errors are not well understood by programmers; their avoidance is not widely taught by computer science programs; and their presence is frequently not tested by organizations developing software for sale.
The report looks to be quite thorough and covers the vulnerabilites in great depth. It also discusses prevention and mitigation techniques. I am very excited to dig into the report and learn more.
Some of the Top 25 include:
Our old favorites:
- Improper Input Validation
- Improper Encoding or Escaping of Output
- Failure to Preserve SQL Query Structure
- Cross-Site Request Forgery (CSRF)
- Error Message Information Leak
And some I have not previously considered:
- Download of Code Without Integrity Check
- Use of a Broken or Risky Cryptographic Algorithm
- Use of Insufficiently Random Values
- Failure to Preserve OS Command Structure






How secure does my application need to be? Does ever application need to cover all 25 of these? Do time an budget constraints prevent us from implementing some of these? If so, which ones get cut? What are the risks? etc. etc. etc.
FYI, in the example you cited, if you read a little further, you will see that there is an "out" for languages that do not force developers to initialize their variables ahead of time.