On Mon, Apr 21, 2014 at 12:34:12AM +0100, Kevin Chadwick wrote: > previously on this list people contributed: > > > On Sun, Apr 20, 2014 at 07:07:45PM +0100, Steven Chamberlain wrote: > > > Hi, > > > > > > But meanwhile, OpenBSD developers are extensively cleaning up OpenSSL > > > 1.0.1g. > > > > One of the problems with anything from OpenBSD is that they only > > care about OpenBSD, and if you want to use that fork you'll > > actually have to go and revert some of the things they're doing. > > > > Not true actually but of course their primary concern is naturally > OpenBSD. They takes POSIX seriously and atleast one patch has brought > it closer to POSIX standards. It is also clear to me that Theo wants > all to follow and benefit from best practice and bug hunting, the fact > that there is so much resistance is not his fault... is strlcpy still > rejected by glibc on the false premise of not solving truncation despite > better performance than strncpy and when it makes finding truncation > much easier! when used how they have been applying it to openssl. > > https://lwn.net/Articles/507319/
I'm not sure what you're trying to say here. But look at the example of the random number generator in my other e-mail. I've seen other cases were they do things like that. And I can perfectly understand why they do it, and then rely on that behaviour on OpenBSD, but it only works on OpenBSD. > > > It's now using native malloc/free instead of its own allocator > > > which allowed the Heartbleed bug to happen. > > > > This did not allow heartbleed to happen. It might have hidden > > CVE-2010-5298 more, but it was always there and is unrelated to > > heartbleed. > > > > It did because it would have been picked up likely weeks after the bug > was introduced due to OpenBSD and Gentoo hardened bug reports or static > analysis resulting in bug reports. As Theo says possibly before it was > actually released meaning all risk avoided "essentially for free". It seems you do not understand either vulnerability. - heartbleed: You send a packet and the other sides sends it back. Part of that packet contains a size which is not checked and that allows you to read more data than you send. If heartbleed wasn't been exploited there was no way to detect it. If it was being exploited, it can still go undetected assuming you limit the amount of data that you read. To be able to detect it with malloc() you probably need to give each malloc() it's own page and have a guard (before and) after it. - CVE-2010-5298: This has actually been reported 4 years ago already, long before heartbleed was introduced. This is a case where you call free() when you still have data, and you might have gotten that back in the next malloc(), or you might have gotton something else back. This is something that the native malloc() will probably have catched, but you see it with their implementation too. But this only happens when you turn on an option (not related to heartbleed) that not everybody uses and they most likely wouldn't have found this either. Kurt -- To UNSUBSCRIBE, email to debian-devel-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: https://lists.debian.org/20140421085535.ga32...@roeckx.be