+
+ Rank |
+ ID |
+ Name |
+
+
+ [1] |
+ CWE-787 |
+ Out-of-bounds Write |
+
+
+ [2] |
+ CWE-79 |
+ Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting') |
+
+
+ [3] |
+ CWE-125 |
+ Out-of-bounds Read |
+
+
+ [4] |
+ CWE-20 |
+ Improper Input Validation |
+
+
+ [5] |
+ CWE-78 |
+ Improper Neutralization of Special Elements used in an OS Command ('OS Command Injection') |
+
+
+ [6] |
+ CWE-89 |
+ Improper Neutralization of Special Elements used in an SQL Command ('SQL Injection') |
+
+
+ [7] |
+ CWE-416 |
+ Use After Free |
+
+
+ [8] |
+ CWE-22 |
+ Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal') |
+
+
+ [9] |
+ CWE-352 |
+ Cross-Site Request Forgery (CSRF) |
+
+
+ [10] |
+ CWE-434 |
+ Unrestricted Upload of File with Dangerous Type |
+
+
+ [11] |
+ CWE-306 |
+ Missing Authentication for Critical Function |
+
+
+ [12] |
+ CWE-190 |
+ Integer Overflow or Wraparound |
+
+
+ [13] |
+ CWE-502 |
+ Deserialization of Untrusted Data |
+
+
+ [14] |
+ CWE-287 |
+ Improper Authentication |
+
+
+ [15] |
+ CWE-476 |
+ NULL Pointer Dereference |
+
+
+ [16] |
+ CWE-798 |
+ Use of Hard-coded Credentials |
+
+
+ [17] |
+ CWE-119 |
+ Improper Restriction of Operations within the Bounds of a Memory Buffer |
+
+
+ [18] |
+ CWE-862 |
+ Missing Authorization |
+
+
+ [19] |
+ CWE-276 |
+ Incorrect Default Permissions |
+
+
+ [20]
+ |
+ CWE-200 |
+ Exposure of Sensitive Information to an Unauthorized Actor |
+
+
+ [21] |
+ CWE-522 |
+ Insufficiently Protected Credentials |
+
+
+ [22] |
+ CWE-732 |
+ Incorrect Permission Assignment for Critical Resource |
+
+
+ [23] |
+ CWE-611 |
+ Improper Restriction of XML External Entity Reference |
+
+
+ [24] |
+ CWE-918 |
+ Server-Side Request Forgery (SSRF) |
+
+
+ [25] |
+ CWE-77 |
+ Improper Neutralization of Special Elements used in a Command ('Command Injection') |
+
+
+
+
+#### On the Cusp
+
+The developers of the CWE Top 25 felt that there were a number of weaknesses that were important, but did not manage to be in their top 25 because they were not as prevalent or tended to be less severe. They call these weaknesses *on the cusp*.
+
+Developers that complete mitigation and risk decision-making on the 2021 CWE Top 25 may want to look for these other weaknesses potentially present in their software. For these reasons, users of the 2021 CWE Top 25 should seriously consider including these additional weaknesses in their analyses:
+
+
+
+ Rank |
+ ID |
+ Name |
+
+
+ [26] |
+ CWE-295 |
+ Improper Certificate Validation |
+
+
+ [27] |
+ CWE-400 |
+ Uncontrolled Resource Consumption |
+
+
+ [28] |
+ CWE-94 |
+ Improper Control of Generation of Code ('Code Injection') |
+
+
+ [29] |
+ CWE-269 |
+ Improper Privilege Management |
+
+
+ [30] |
+ CWE-917 |
+ Improper Neutralization of Special Elements used in an Expression Language Statement ('Expression Language Injection') |
+
+
+ [31] |
+ CWE-59 |
+ Improper Link Resolution Before File Access ('Link Following') |
+
+
+ [32] |
+ CWE-401 |
+ Missing Release of Memory after Effective Lifetime |
+
+
+ [33] |
+ CWE-362 |
+ Concurrent Execution using Shared Resource with Improper Synchronization ('Race Condition') |
+
+
+ [34] |
+ CWE-427 |
+ Uncontrolled Search Path Element |
+
+
+ [35] |
+ CWE-319 |
+ Cleartext Transmission of Sensitive Information |
+
+
+ [36] |
+ CWE-843 |
+ Access of Resource Using Incompatible Type ('Type Confusion') |
+
+
+ [37] |
+ CWE-601 |
+ URL Redirection to Untrusted Site ('Open Redirect') |
+
+
+ [38] |
+ CWE-863 |
+ Incorrect Authorization |
+
+
+ [39] |
+ CWE-532 |
+ Inclusion of Sensitive Information in Log Files |
+
+
+ [40] |
+ CWE-770 |
+ Allocation of Resources Without Limits or Throttling |
+
+
+
+You will be glad to know that this set of courses has, at least briefly, discussed each one of these kinds of vulnerabilities, even the ones “on the cusp”,
+for both the [2019](https://cwe.mitre.org/top25/archive/2019/2019_cwe_top25.html) and [2021](https://cwe.mitre.org/top25/archive/2021/2021_cwe_top25.html) editions of the CWE Top 25 list.
+
+
+#### Quiz 4.6: CWE Top 25
+
+\>\>Select the true statement(s):<<
+
+[!x] The 2021 CWE Top 25 Most Dangerous Software Errors list was created using real-world data about vulnerabilities combined with their severity scores
+
+[x] The 2021 CWE Top 25 Most Dangerous Software Errors list is a combination of all kinds of software.
+
+[ ] The CWEs listed in the 2021 CWE Top 25 Most Dangerous Software Errors do not overlap each other. {{ selected: No, there are CWEs that overlap. For example, CWE-119 (“Improper Restriction of Operations within the Bounds of a Memory Buffer”) is a superset of both CWE-125 (“Out-of-bounds read”) and CWE-787 (“Out-of-bounds Write”). }}
+
+## Concluding Notes
+
+### Conclusions
+
+The goal of this course is to help you develop secure software. We hope you feel far more prepared to counter attackers.
+
+As you develop your software:
+
+* Consider its security requirements. Make sure you know what it is supposed to do... and *NOT* do.
+
+* Design for security. Constantly consider design principles, like least privilege and non-bypassability.
+
+* Implement for security. In particular, counter common kinds of mistakes. Simply countering common kinds of vulnerabilities is not enough to create a secure system, but it is a big step forward. Knowing the common kinds of implementation mistakes will also help you become aware of other kinds of vulnerabilities as well.
+
+* Verify. In particular, use tools to detect problems *before* you ship. Where you can, enable tools as soon as you can and make sure they are in your continuous integration (CI) pipeline.
+
+* Field and promptly handle vulnerability reports.
+
+In real life security is a process - a journey - and not a simple endpoint. We hope that this course has made you far more prepared to take this journey. We wish you the best as you develop software that will help protect people’s reputation, property, and even lives.
+
+# Part III: Final Exam
+
+* Not included as part of the free version of the course.
+
+# Part IV: Supporting Materials Not Part of the Course
+
+# Glossary
+
+Attacker: A person who attacks computer systems.
+
+Hardening a system: Modifying a system so that defects are less likely to become security vulnerabilities.
+
+Hacker: “a person who delights in having an intimate understanding of the internal workings of a system, computers and computer networks in particular.” ([IETF RFC 1983](https://tools.ietf.org/html/rfc1983))
+
+# Further Reading
+
+(Not part of the course per se)
+
+Many others discuss how to develop secure software. This course merely covers the fundamentals (as we see them). Here are some resources:
+
+* “Secure Software Design and Programming: Class Materials” by David A. Wheeler - [https://dwheeler.com/secure-class/](https://dwheeler.com/secure-class/) - lecture materials for a graduate class at George Mason University (GMU). This is a graduate class, so it goes into more detail.
+
+* “Secure Programming HOWTO” - book by David A. Wheeler - [https://dwheeler.com/secure-programs/](https://dwheeler.com/secure-programs/)
+
+* “Fundamental Practices for Secure Software Development, Third Edition” from SAFECode. SAFECode has published other useful materials, e.g., “Managing Security Risks Inherent in the Use of Third-party Components” and “Practices for Secure Development of Cloud Applications” - [https://safecode.org/publications/](https://safecode.org/publications/)
+
+* Secure Programming with Static Analysis by Brian Chess & Jacob West
+
+* Official (ISC)2 Guide to the CSSLP CBK ((ISC)2 Press), Paul, Mano
+
+* Mitigating the Risk of Software Vulnerabilities by Adopting a Secure Software Development Framework (SSDF), NIST, [https://nvlpubs.nist.gov/nistpubs/CSWP/NIST.CSWP.04232020.pdf](https://nvlpubs.nist.gov/nistpubs/CSWP/NIST.CSWP.04232020.pdf)
+
+* Building Security In Maturity Model (BSIMM) <[https://www.bsimm.com/](https://www.bsimm.com/)>
+
+* The BSA Framework for Secure Software [https://www.bsa.org/files/reports/bsa_software_security_framework_web_final.pdf](https://www.bsa.org/files/reports/bsa_software_security_framework_web_final.pdf)
+
+* OWASP Secure Coding Practices-Quick Reference Guide