aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Peter Korsgaard <peter@korsgaard.com>2018-01-28 23:33:10 +0100
committerGravatar Peter Korsgaard <peter@korsgaard.com>2018-01-31 12:04:16 +0100
commit8c24f6556f900bc5b113657124b17db2eddd728f (patch)
tree9835d0864da7548afd58d7ab83ede57c9e3bcfc6
parentf4caafafc2d9d7733690bceac71af50600eccee2 (diff)
downloadbuildroot-8c24f6556f900bc5b113657124b17db2eddd728f.tar.gz
buildroot-8c24f6556f900bc5b113657124b17db2eddd728f.tar.bz2
dovecot: add upstream security fix for CVE-2017-15132
A flaw was found in dovecot 2.0 up to 2.2.33 and 2.3.0. An abort of SASL authentication results in a memory leak in dovecot's auth client used by login processes. The leak has impact in high performance configuration where same login processes are reused and can cause the process to crash due to memory exhaustion. For more details, see: http://www.openwall.com/lists/oss-security/2018/01/25/4 Signed-off-by: Peter Korsgaard <peter@korsgaard.com> (cherry picked from commit 28adb37be48566ede823969c284c1490b456530a) Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
-rw-r--r--package/dovecot/0002-lib-auth-Fix-memory-leak-in-auth_client_request_abor.patch33
1 files changed, 33 insertions, 0 deletions
diff --git a/package/dovecot/0002-lib-auth-Fix-memory-leak-in-auth_client_request_abor.patch b/package/dovecot/0002-lib-auth-Fix-memory-leak-in-auth_client_request_abor.patch
new file mode 100644
index 0000000000..babccd3acf
--- /dev/null
+++ b/package/dovecot/0002-lib-auth-Fix-memory-leak-in-auth_client_request_abor.patch
@@ -0,0 +1,33 @@
+From 1a29ed2f96da1be22fa5a4d96c7583aa81b8b060 Mon Sep 17 00:00:00 2001
+From: Timo Sirainen <timo.sirainen@dovecot.fi>
+Date: Mon, 18 Dec 2017 16:50:51 +0200
+Subject: [PATCH] lib-auth: Fix memory leak in auth_client_request_abort()
+
+This caused memory leaks when authentication was aborted. For example
+with IMAP:
+
+a AUTHENTICATE PLAIN
+*
+
+Broken by 9137c55411aa39d41c1e705ddc34d5bd26c65021
+
+Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
+---
+ src/lib-auth/auth-client-request.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/src/lib-auth/auth-client-request.c b/src/lib-auth/auth-client-request.c
+index 480fb42b3..046f7c307 100644
+--- a/src/lib-auth/auth-client-request.c
++++ b/src/lib-auth/auth-client-request.c
+@@ -186,6 +186,7 @@ void auth_client_request_abort(struct auth_client_request **_request)
+
+ auth_client_send_cancel(request->conn->client, request->id);
+ call_callback(request, AUTH_REQUEST_STATUS_ABORT, NULL, NULL);
++ pool_unref(&request->pool);
+ }
+
+ unsigned int auth_client_request_get_id(struct auth_client_request *request)
+--
+2.11.0
+