New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.
Starred by 2 users
Status: Fixed
Owner:
Last visit > 30 days ago
Closed: May 2015



Sign in to add a comment
LibreSSL 2.1.3 vulnerable to information leak
Reported by groebert@google.com, Feb 25 2015 Back to list
In libressl-2.1.3/ssl/t1_lib.c the function ssl_add_clienthello_tlsext adds the TLS extension EllipticCurves to the ClientHello message:

const uint16_t *curves;
[..]
tls1_get_curvelist(s, 0, &curves, &curveslen);

In the function tls1_get_curvelist the default is used:

*pcurves = eccurves_default;  // global
*pcurveslen = sizeof(eccurves_default);  // 56

Later the size of the global eccurves_default in bytes is used to index into the curves array. This leads to an out-of-bounds read access which leaks adjacent memory to the ClientHello message.

for (i = 0; i < curveslen; i++)
  s2n(curves[i], ret);

A pointer to function tls1_new is nearby eccurves_default in my test build. The vulnerability could be used to leak the pointer.

This bug is subject to a 90 day disclosure deadline. If 90 days elapse
without a broadly available patch, then the bug report will automatically
become visible to the public.

 
Comment 1 by cevans@google.com, Feb 25 2015
Owner: groebert@google.com
Comment 2 by cevans@google.com, Feb 25 2015
Labels: Vendor-OpenBSD Product-libressl Deadline-90 Severity-Medium Finder-groebert Reported-2015-Feb-24
Status: New
Comment 3 Deleted
This has just been fixed in t1_lib.c r1.75 and will show up in LibreSSL portable 2.1.4, which is soon to be released.

Comment 5 by cevans@google.com, May 6 2015
Labels: -Restrict-View-Commit Fixed-2015-Mar-4
Status: Fixed
http://undeadly.org/cgi?action=article&sid=20150304092744
Sign in to add a comment