Systems Programming Bugs in Industry - angrave/SystemProgramming GitHub Wiki

Be Careful!

Below are all famous bugs that have brought down systems. If you want to experiment with any of the starter code that they give, take caution as you could lose important files or even usability of your system.

You may not be able to understand much of this at the beginning of the course. As we go through, more and more of these bugs will become clear. Systems programming doesn't have to be in C only!

Basic Memory/C Bugs

Vulnerabilities in IOHIDeous, Mac OS X Heartbleed PHP Memory Bug -- Please don't use PHP "Cloudbleed"

Famous Race Conditions

Making money on digital ocean, Awesome Race Condition, Bitcoin Race Conditions, Dirty Cow, My Favorite, Hyper Threading, Kernel Race Conditions, Not a bug but still cool -- Random number race generation

Memory Stuff

Memory Allocation in Python, Memory Leaks, kfree twice to get root

Processes

Using waitid to escape docker, Famous fork gotcha

Filesystems

Apple Filesystems, Ubuntu Filesystems

Event Drive IO

epoll broken

Networking

gethostbyname overflow, tricking antiviruses, Breaking SSL

Scheduling

Decades of wasted cores

Signal

Privilege Escalation with kill(-1, SIGKILL)