3 ms·
The track record of OpenSSL = memory management vulnerabilities. Vulnerabilities that are preventable. Google: openssl "use-after-free" site:cvedetails.com/cve
by 29athrowaway 4y ago
The track record of OpenSSL = memory management vulnerabilities. Vulnerabilities that are preventable.
Google: openssl "use-after-free" site:cvedetails.com/cve
It's time to accept that C is not the tool for the job. Good programmers still make mistakes and now we have tools to catch most of those mistakes.
In Rust many of those errors become compile-time errors.
- yjftsjthsd-h 4y agoThat's one possible reading of the situation, certainly. Another, however, is that openssl is uniquely poor quite separately from the language it happens to be implemented in. Unfortunately TLS libraries are thin enough on the ground that we can't really pick out patterns. It's like saying that microkernels are bad because HURD has serious issues; it could be true, but comparing by the well-known problem child isn't necessarily a good way to tell.
- 29athrowaway 4y ago> Another, however, is that openssl is uniquely poor quite separately from the language it happens to be implemented in. There are well-known, proven solutions to the memory management problems that affect OpenSSL (a C library) in a regular basis, and there are languages that implement those solutions. Among them, Rust, Ada and others.
- Arch-TK 4y agoWhile it is likely that the issue affecting OpenSSL is memory safety related, how do you know for sure that it is and that rust would have prevented it without having a performance impact? While a language which prevents certain memory errors by design is going to be safe by design, it's entirely possible this bug is in code so hot that it has been repeatedly optimized further and further and that an equivalent implementation in rust would require an unsafe block. Now it is all great to respond to this by saying "safety should never preclude performance" but in that case, why would you write in rust when there are even safer languages such as spark? Moreover, if your secure solution is too slow, nobody will want to use it. I do agree that OpenSSL is a pile of trash, but an overwhelming amount of the crust of OpenSSL is not C related.
- 29athrowaway 4y ago> While it is likely that the issue affecting OpenSSL is memory safety related It always is. Because it's a C project where memory management is done manually. And everything done manually is subject to human error. Doing C-style a capella memory management in 2022 is not necessary. > how do you know for sure that it is and that rust would have prevented it without having a performance impact Because much of the safety features Rust implements for memory management happens at compile time not at runtime.
- bitwize 4y agoEven highly skilled C programmers make the kinds of mistakes that lead to these sorts of vulnerabilities. C is inherently bug-prone. Time to declare it unsafe at any speed.