| Message ID | 20200717171818.230371-1-matthias.andree@gmx.de |
|---|---|
| State | Accepted |
| Delegated to: | Gert Doering |
| Headers |
Return-Path: <openvpn-devel-bounces@lists.sourceforge.net> Delivered-To: patchwork@openvpn.net Delivered-To: patchwork@openvpn.net Received: from director7.mail.ord1d.rsapps.net ([172.27.255.59]) by backend30.mail.ord1d.rsapps.net with LMTP id YOU9MZvdEV8SEQAAIUCqbw for <patchwork@openvpn.net>; Fri, 17 Jul 2020 13:19:23 -0400 Received: from proxy7.mail.iad3a.rsapps.net ([172.27.255.59]) by director7.mail.ord1d.rsapps.net with LMTP id KJvMLpvdEV+mZQAAovjBpQ ; Fri, 17 Jul 2020 13:19:23 -0400 Received: from smtp18.gate.iad3a ([172.27.255.59]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) by proxy7.mail.iad3a.rsapps.net with LMTP id oEv0KZvdEV8JMQAAnPvY+A ; Fri, 17 Jul 2020 13:19:23 -0400 X-Spam-Threshold: 95 X-Spam-Score: 0 X-Spam-Flag: NO X-Virus-Scanned: OK X-Orig-To: openvpnslackdevel@openvpn.net X-Originating-Ip: [216.105.38.7] Authentication-Results: smtp18.gate.iad3a.rsapps.net; iprev=pass policy.iprev="216.105.38.7"; spf=pass smtp.mailfrom="openvpn-devel-bounces@lists.sourceforge.net" smtp.helo="lists.sourceforge.net"; dkim=fail (signature verification failed) header.d=sourceforge.net; dkim=fail (signature verification failed) header.d=sf.net; dkim=fail (signature verification failed) header.d=gmx.net; dmarc=none (p=nil; dis=none) header.from=gmx.de X-Suspicious-Flag: YES X-Classification-ID: a7e65516-c851-11ea-a14d-5254008b8116-1-1 Received: from [216.105.38.7] ([216.105.38.7:36292] helo=lists.sourceforge.net) by smtp18.gate.iad3a.rsapps.net (envelope-from <openvpn-devel-bounces@lists.sourceforge.net>) (ecelerity 4.2.38.62370 r(:)) with ESMTPS (cipher=DHE-RSA-AES256-GCM-SHA384) id 45/3A-18816-A9DD11F5; Fri, 17 Jul 2020 13:19:23 -0400 Received: from [127.0.0.1] (helo=sfs-ml-4.v29.lw.sourceforge.com) by sfs-ml-4.v29.lw.sourceforge.com with esmtp (Exim 4.90_1) (envelope-from <openvpn-devel-bounces@lists.sourceforge.net>) id 1jwU0U-0005VO-UH; Fri, 17 Jul 2020 17:18:46 +0000 Received: from [172.30.20.202] (helo=mx.sourceforge.net) by sfs-ml-4.v29.lw.sourceforge.com with esmtps (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.90_1) (envelope-from <matthias.andree@gmx.de>) id 1jwU0T-0005VG-0g for openvpn-devel@lists.sourceforge.net; Fri, 17 Jul 2020 17:18:45 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=sourceforge.net; s=x; h=Content-Transfer-Encoding:MIME-Version:References: In-Reply-To:Message-Id:Date:Subject:Cc:To:From:Sender:Reply-To:Content-Type: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=jp/yWSKiZsDsbeBPB6VIIlw77IVWR+I5LwnjpMYbbRQ=; b=htN6ooaure/Fk7gdi8ymNU7HYy ViVp52svwIkMQX/4lgZJzMxLwdZR4hIXTv8wsEketMa8nzP06vWo9U9jaYodJu1h4rgz524bZ6qip ug8LFhc6FU1qrDLqhdktbZNolKojY5WX+0wmxYgoKTE3GhYedtQfVfUuh4Uq1is2/4ik=; DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=sf.net; s=x ; h=Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-Id: Date:Subject:Cc:To:From:Sender:Reply-To:Content-Type:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=jp/yWSKiZsDsbeBPB6VIIlw77IVWR+I5LwnjpMYbbRQ=; b=a42QwqgZqf//x1IQNHftDuj3/O I1E0TQoGAdVGjufKMUUyil5sojr3004J3Rxa6j+Lm4gbRLblER2RNiX9tMcOOcnEVHn37DtoQAarV HWfBqosUnGLbLYvQZPFqFJxjJevyn1ItvZEZJhcgVebPT+duT7WiHezvlbkrInAt1RHY=; Received: from mout.gmx.net ([212.227.15.15]) by sfi-mx-1.v28.lw.sourceforge.com with esmtps (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.92.2) id 1jwU0R-00CPeF-A2 for openvpn-devel@lists.sourceforge.net; Fri, 17 Jul 2020 17:18:44 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1595006309; bh=VWttqbclTZtDlDgdhEqUOuk2M9XVNTg4Tf+R6rLV5Sw=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date:In-Reply-To:References; b=j4WE0SP1ykOJDGq1mel06m90bL0ZD6/5pcrldYM1q0WsbplABTpbo313Fta1KTSb/ Hqy+4UMuGFR//CyYAZD3b5p35Ua/LxgveZEaMABDNIaAAVVpgjYJ8zRaIAcpiRftdW MsJuvpt8DmvpfxGHDVPV9Jj6VZL7HgHkmhf/Neog= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from mandree.no-ip.org ([84.160.55.91]) by mail.gmx.com (mrgmx005 [212.227.17.190]) with ESMTPSA (Nemesis) id 1M6Db0-1juG1F1wkK-006d0P; Fri, 17 Jul 2020 19:18:29 +0200 Received: by ryzen.an3e.de (Postfix, from userid 1000) id 1B6F1120275; Fri, 17 Jul 2020 19:18:29 +0200 (CEST) From: Matthias Andree <matthias.andree@gmx.de> To: openvpn-devel@lists.sourceforge.net Date: Fri, 17 Jul 2020 19:18:18 +0200 Message-Id: <20200717171818.230371-1-matthias.andree@gmx.de> X-Mailer: git-send-email 2.25.4 In-Reply-To: <20200717170948.227787-1-matthias.andree@gmx.de> References: <20200717170948.227787-1-matthias.andree@gmx.de> MIME-Version: 1.0 X-Provags-ID: V03:K1:dnHZgkicL7Q0DvEwJGPQZ7307TigjWXR0qpDlEBhEG76xycchy2 lXWkxSA8UVZbUUBE214f4MTRFMPY530b3ERnNS3gtC1M/Bsi9EajKm1ZjuwN4guAjWPksy2 AsW2R79FTwJYRzMrN9tMhCquwqkL662cyD02LEpMSWvEas9cl+x65JX86y4+W/iGRnuweeE Cw2uzUDSqOeeFwF6vR5Ig== X-UI-Out-Filterresults: notjunk:1;V03:K0:Q+uFSQrMKG8=:LHd5pDPE8Z7AoIyPgnsjaX PF16gmHIl2MEPCR6kJ1aoMSF70aD1M3FId2hTWbp2pcf57b6kBysv/BFPajatzOoUcHq11TrO nIRUVMAH3D7I1ujw1xyygA+0UlVe6gXeRxV8KCYPNp0WKeBlMI5HGrBJN0o+jw8DLn4EdAH+u vn7ATMl3myWvzY5PWFf36Sb8YObZTUUIJSP2JECNyoQPw7owonKoXhLB+tWL+tPqXffEazPwc kWKq7EPi8uAk03k+VB9rcJLZwG7F6PcwBWb7floPl2G1/DcgT5ZwNzymEC897npxkWAXGCTfc ncNi8kJoQX0fbsUb8KbBeqOugNJjS15eEpxHJvbNm94t7MbWQuLrAbWGWsXCgKUvnAbe752lh Yf4b4DzH05j44MduCmbdT8015Z4xIxEDumo5X3zENX7A9Vi6+/+tnLMMeNhRMxTG+4NmLDp9e XmCq5V0ErGHQzg2P3nwtG7Ghxvnhh2MNWafT6gxDbsQ9LxrtndHH9/iQE6rpMNpYwAtcF4FGb 9vvct2LjNM4be4M/Zj9BHUELemih5Qfr9gLXpXfvGAKHICwtWKsCTYmYu33hy3CUAS9HoPYMY ZrY+FkLEA0MIBzjUYxluZ3ZTvy9OtKi8foY6/YpFMckJEvR4TNmLzOZHMG9K9B4WbQs/ishQG CXtXNlNq+78TrfhPY0623/RW4vD/aEDl3n5SHfakepHsQHon0I+TyWv0b7XXCV0SxKcJXIFJo CxB1eSrPa0EFhi5dQWpOS0YA2BD9fCGx01Ymktylx9zn18OGSSMKTyqPwkIy9RIbuk5rnoBMT 2nVEJm763sGLnhKC1zcIOxEL/AUEqCAqIZz0cc7s30Gl350ozjHmXVyc/0/4AkWOhZTLLNRVe LYXEzaE0E6eBuVgPRxdvR4tIu6VwMkfXurImCaERAZ8rIUscmyGLMNEJGNJoQeWGHyhdy7bEL RO6mLvvnTpvPGqm36HKCH+JxuMN9XkHcMCtU+rFAmBbbJb/UtPwmz3MiXM6ZhlRB0VWRKyW/n g4PAirKuuqOeltFl976t2xcMDsMqYuJZdQKtKorcQyrvvOExlUYgRkGYJw2sWDYtnyQhIR+Iz sBBpfz2PsjkGKpC/ywLrJEsWauMuyT5gpC2cyS6tfjH1CQiHiPZHJEN+cV55seegYyGvgsHy8 gogFSItRsvN0v/RkMgq7ZKfB7YtVZnVFiQkeXTd6QwM78ci22lvPkAd3256OYSD6i/fiXf6zJ DQbL12BHsANtqmz9Wv3fnUWIkBpTODNBw3TkyOg== X-Spam-Report: Spam Filtering performed by mx.sourceforge.net. See http://spamassassin.org/tag/ for more details. 0.0 URIBL_BLOCKED ADMINISTRATOR NOTICE: The query to URIBL was blocked. See http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block for more information. [URIs: gmx.de] 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider (matthias.andree[at]gmx.de) -0.0 RCVD_IN_MSPIKE_H2 RBL: Average reputation (+2) [212.227.15.15 listed in wl.mailspike.net] -0.0 SPF_PASS SPF: sender matches SPF record 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.0 AWL AWL: Adjusted score from AWL reputation of From: address X-Headers-End: 1jwU0R-00CPeF-A2 Subject: [Openvpn-devel] [PATCH] Fix stack buffer overruns in NEXTADDR() macro: X-BeenThere: openvpn-devel@lists.sourceforge.net X-Mailman-Version: 2.1.21 Precedence: list List-Id: <openvpn-devel.lists.sourceforge.net> List-Unsubscribe: <https://lists.sourceforge.net/lists/options/openvpn-devel>, <mailto:openvpn-devel-request@lists.sourceforge.net?subject=unsubscribe> List-Archive: <http://sourceforge.net/mailarchive/forum.php?forum_name=openvpn-devel> List-Post: <mailto:openvpn-devel@lists.sourceforge.net> List-Help: <mailto:openvpn-devel-request@lists.sourceforge.net?subject=help> List-Subscribe: <https://lists.sourceforge.net/lists/listinfo/openvpn-devel>, <mailto:openvpn-devel-request@lists.sourceforge.net?subject=subscribe> Cc: Matthias Andree <matthias.andree@gmx.de> Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: openvpn-devel-bounces@lists.sourceforge.net X-getmail-retrieved-from-mailbox: Inbox |
| Series |
[Openvpn-devel] Fix stack buffer overruns in NEXTADDR() macro:
|
|
Commit Message
Matthias Andree
July 17, 2020, 7:18 a.m. UTC
copy first, then round up the length when adding padding
to the advance.
Found by: GCC 9.3.0 (FreeBSD)
Signed-off-by: Matthias Andree <matthias.andree@gmx.de>
---
src/openvpn/route.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--
2.25.4
Comments
Your patch has been applied to the master and release/2.4 branch
(bugfix).
Thanks for the fix. Yes, this was "very obvious in hindsight".
To my defense, I can only argue that it's always been that way -
while I was the last one to touch that line (in 2ff366f78),
the *order* of operations was "always like this"...
- l = ROUNDUP(u.sa_len); memmove(cp, &(u), l); cp += l;\
+ l = ROUNDUP( ((struct sockaddr *)&(u))->sa_len); memmove(cp, &(u), l); cp += l;\
.. anyway. I have tested your fix on all platforms that use this
code path and which I had available, which is
- FreeBSD 7.4/amd64 (works)
- FreeBSD 11.3/amd64 (works)
- FreeBSD 12.1/amd64 (works)
- FreeBSD 12.1/i386 (works)
- FreeBSD 12.x/sparc64 (postponed, hardware down)
- FreeBSD 12.1/arm64 (rPI 3) (works)
- NetBSD 8.1/i386 (turns out to be broken before and after)
("GDG6: problem writing to routing socket", already trac #734)
- OpenBSD 6.5/amd64 (works)
- MacOS Mojave/amd64 (works)
- MacOS 10.5/i386 (works) [only tested 2.4]
and the code is excercised by "openvpn --show-gateway" (and by
the internal user of this, "do we need an IPv6 redirect route").
OpenSolaris, Linux and Windows use different code paths.
(The OpenSolaris NEXTADDR() actually has the same problem, just
nobody noticed it so far - so I'll send a followup patch to fix
it over there as well)
commit 5fde831c580775aa5c1fe3539b06260d994eee10 (master)
commit 7c428ca19a8df6b9630734eafce1132f457be951 (release/2.4)
Author: Matthias Andree
Date: Fri Jul 17 19:18:18 2020 +0200
Fix stack buffer overruns in NEXTADDR() macro:
Signed-off-by: Matthias Andree <matthias.andree@gmx.de>
Acked-by: Gert Doering <gert@greenie.muc.de>
Message-Id: <20200717171818.230371-1-matthias.andree@gmx.de>
URL: https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg20461.html
Signed-off-by: Gert Doering <gert@greenie.muc.de>
--
kind regards,
Gert Doering
diff --git a/src/openvpn/route.c b/src/openvpn/route.c index b57da5dd..24563ed6 100644 --- a/src/openvpn/route.c +++ b/src/openvpn/route.c @@ -3436,7 +3436,7 @@ struct rtmsg { #else /* if defined(TARGET_SOLARIS) */ #define NEXTADDR(w, u) \ if (rtm_addrs & (w)) { \ - l = ROUNDUP( ((struct sockaddr *)&(u))->sa_len); memmove(cp, &(u), l); cp += l; \ + l = ((struct sockaddr *)&(u))->sa_len; memmove(cp, &(u), l); cp += ROUNDUP(l); \ } #define ADVANCE(x, n) (x += ROUNDUP((n)->sa_len))