Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
SUSE:SLE-12-SP1:GA
openvpn
0005-Don-t-assert-out-on-receiving-too-large-co...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 0005-Don-t-assert-out-on-receiving-too-large-control-pack.patch of Package openvpn
From feb35ee5cac605edddd6e9dc62941e2c53f96fb3 Mon Sep 17 00:00:00 2001 From: Steffan Karger <steffan.karger@fox-it.com> Date: Thu, 11 May 2017 11:00:57 +0200 Subject: [PATCH] Don't assert out on receiving too-large control packets (CVE-2017-7478) Commit 358f513c changed the maximum size of accepted control channel packets. This was needed for crypto negotiation (which is needed for a nice transition to a new default cipher), but exposed a DoS vulnerability. The vulnerability was found during the OpenVPN 2.4 code audit by Quarkslab (commisioned by OSTIF). To fix the issue, we should not ASSERT() on external input (in this case the received packet size), but instead gracefully error out and drop the invalid packet. CVE: 2017-7478 Signed-off-by: Steffan Karger <steffan.karger@fox-it.com> Acked-by: Gert Doering <gert@greenie.muc.de> Acked-by: David Sommerseth <davids@openvpn.net> Message-Id: <1494493257-8125-1-git-send-email-steffan.karger@fox-it.com> URL: http://www.mail-archive.com/search?l=mid&q=1494493257-8125-1-git-send-email-steffan.karger@fox-it.com Signed-off-by: David Sommerseth <davids@openvpn.net> --- Changes.rst | 6 ++++++ src/openvpn/ssl.c | 7 ++++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/openvpn/ssl.c b/src/openvpn/ssl.c index c52a0e4f..e704b73e 100644 --- a/src/openvpn/ssl.c +++ b/src/openvpn/ssl.c @@ -3225,7 +3225,12 @@ tls_pre_decrypt (struct tls_multi *multi, /* Save incoming ciphertext packet to reliable buffer */ struct buffer *in = reliable_get_buf (ks->rec_reliable); ASSERT (in); - ASSERT (buf_copy (in, buf)); + if (!buf_copy (in, buf)) + { + msg (D_MULTI_DROPPED, + "Incoming control channel packet too big, dropping."); + goto error; + } reliable_mark_active_incoming (ks->rec_reliable, in, id, op); } -- 2.12.2
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor