There are not fundamental design flaws. They don't have to be, to be a problem. And it's a problem exacerbated by the developers' typical response to problem reports -- to try to transfer blame, or treat them as personal attacks, rather than dealing with the issue. An example of that is CVE-2017-1000082 -- a rare example of a real problem that was assigned a CVE number by request of someone other than the developer, because the developers are still insisting, after a week of well-deserved mockery, that it's not a problem (or not their problem, or something)...
Refs:
Buffer overflow: https://www.theregister.co.uk/2017/06/29/systemd_pwned_by_dn...
Cache poisoning: http://seclists.org/oss-sec/2014/q4/592