Out of the 58 in-the-wild 0-days for the year, 39, or 67% were memory corruption vulnerabilities. Memory corruption vulnerabilities have been the standard for attacking software for the last few decades and it’s still how attackers are having success. Out of these memory corruption vulnerabilities, the majority also stuck with very popular and well-known bug classes:
- 17 use-after-free
- 6 out-of-bounds read & write
- 4 buffer overflow
- 4 integer overflow
This is because developers are fixing single instances of bugs and not the whole classes of them. To address memory corruption bugs as a whole class you need to dramatically change your development practice or even the programing language to a memory safe one. Without doing so it will continue to be a whac-a-mole exercise forever.