summaryrefslogtreecommitdiffstats
path: root/util
diff options
context:
space:
mode:
authorEmilia Kasper <emilia@openssl.org>2016-02-24 12:59:59 +0100
committerEmilia Kasper <emilia@openssl.org>2016-02-25 15:42:48 +0100
commit380f18ed5f140e0ae1b68f3ab8f4f7c395658d9e (patch)
tree83e686e480f176176595a3b2f388be366b774b08 /util
parent37529928faa8456e85a9c5ad9255517da8dd0c61 (diff)
CVE-2016-0798: avoid memory leak in SRP
The SRP user database lookup method SRP_VBASE_get_by_user had confusing memory management semantics; the returned pointer was sometimes newly allocated, and sometimes owned by the callee. The calling code has no way of distinguishing these two cases. Specifically, SRP servers that configure a secret seed to hide valid login information are vulnerable to a memory leak: an attacker connecting with an invalid username can cause a memory leak of around 300 bytes per connection. Servers that do not configure SRP, or configure SRP but do not configure a seed are not vulnerable. In Apache, the seed directive is known as SSLSRPUnknownUserSeed. To mitigate the memory leak, the seed handling in SRP_VBASE_get_by_user is now disabled even if the user has configured a seed. Applications are advised to migrate to SRP_VBASE_get1_by_user. However, note that OpenSSL makes no strong guarantees about the indistinguishability of valid and invalid logins. In particular, computations are currently not carried out in constant time. Reviewed-by: Rich Salz <rsalz@openssl.org>
Diffstat (limited to 'util')
-rwxr-xr-xutil/libeay.num4
1 files changed, 3 insertions, 1 deletions
diff --git a/util/libeay.num b/util/libeay.num
index ca8e9ece68..ad7ad9df85 100755
--- a/util/libeay.num
+++ b/util/libeay.num
@@ -4073,7 +4073,7 @@ OPENSSL_memcmp 4565 1_1_0 EXIST::FUNCTION:
OPENSSL_strncasecmp 4566 1_1_0 EXIST::FUNCTION:
OPENSSL_gmtime 4567 1_1_0 EXIST::FUNCTION:
OPENSSL_gmtime_adj 4568 1_1_0 EXIST::FUNCTION:
-SRP_VBASE_get_by_user 4569 1_1_0 EXIST::FUNCTION:SRP
+SRP_VBASE_get_by_user 4569 1_1_0 EXIST::FUNCTION:DEPRECATEDIN_1_1_0,SRP
SRP_Calc_server_key 4570 1_1_0 EXIST::FUNCTION:SRP
SRP_create_verifier 4571 1_1_0 EXIST::FUNCTION:SRP
SRP_create_verifier_BN 4572 1_1_0 EXIST::FUNCTION:SRP
@@ -4711,3 +4711,5 @@ OPENSSL_thread_stop 5213 1_1_0 EXIST::FUNCTION:
OPENSSL_INIT_new 5215 1_1_0 EXIST::FUNCTION:
OPENSSL_INIT_free 5216 1_1_0 EXIST::FUNCTION:
OPENSSL_INIT_set_config_filename 5217 1_1_0 EXIST::FUNCTION:
+SRP_user_pwd_free 5218 1_1_0 EXIST::FUNCTION:SRP
+SRP_VBASE_get1_by_user 5219 1_1_0 EXIST::FUNCTION:SRP