content: The only reason many of these vulnerabilities exist is factually because the responsible parties calculate it's not a risk if enough people don't know about it  Lolwut. You know very little about OS security if you hold such a simplistic view.  So first of all, vulnerabilities exist for a couple reasons.  Let us just take out the vulnerabilities that require the user be explicitly involved. From a strictly programmatic perspective, these aren't vulnerabilities: merely features. Almost everyone in the security sphere agrees that the person who has admin access to a machine should be allowed to, if they want, blow it up. This isn't a fault, it is a feature.  So what about all those other vulnerabilities that exist? Many of these (more modern) vulnerabilities exist because of the interaction between different parts in ways that weren't analyzed. It is really difficult to exhaustively test all possible interactions. It is also really difficult to write an OS with completely verifiable code.  Vulnerabilities exist because, if they tried to to actually guarantee zero vulnerabilities on release, they would never release the damn stuff. This is why we have patches. This is also why we have vulnerabilities, because it is economically infeasible to take them all out before hand. There is a huge problem, however, with not taking immediate steps to correct vulnerabilities once they have been brought to the company's attention.