Understanding memory corruption vulnerabilities
There are a lot of types of software vulnerabilities. In an effort to categorize software weakness types, arose the Common Weakness Enumeration (CWE). If you want to know what kind of vulnerabilities exist, I recommend you check out the entire list, which you can find at https://cwe.mitre.org/data/index.html.
We will be focusing on memory corruption vulnerabilities. This kind of vulnerability happens when a program tries to access a memory region without having access privileges to it.
These kinds of vulnerabilities are typical in the C/C++ programming languages because a programmer has direct memory access, allowing us to commit memory access mistakes. They are not possible in the Java programming language, which is considered a memory-safe programming language because its runtime error detection checks and prevents such errors, although the Java Virtual Machine (JVM) is also susceptible to memory corruption vulnerabilities (https...