From: akuster808 <akuster808@gmail.com>
To: Khem Raj <raj.khem@gmail.com>
Cc: Armin Kuster <akuster@mvisa.com>,
Armin Kuster <akuster@mvista.com>,
Patches and discussions about the oe-core layer
<openembedded-core@lists.openembedded.org>
Subject: Re: [master][PATCH] glibc: CVE-2016-4429
Date: Sat, 9 Jul 2016 10:25:31 -0700 [thread overview]
Message-ID: <5781338B.6070800@gmail.com> (raw)
In-Reply-To: <CAMKF1sro1hRSYMG8O4bEck78EyJbpWunmOWZG_43a2je3nPXQQ@mail.gmail.com>
On 07/08/2016 04:08 PM, Khem Raj wrote:
> On Fri, Jul 8, 2016 at 3:48 PM, Armin Kuster <akuster808@gmail.com> wrote:
>> From: Armin Kuster <akuster@mvista.com>
>>
>> Signed-off-by: Armin Kuster <akuster@mvisa.com>
>> ---
>> meta/recipes-core/glibc/glibc/CVE-2016-4429.patch | 86 +++++++++++++++++++++++
>> meta/recipes-core/glibc/glibc_2.24.bb | 1 +
>> 2 files changed, 87 insertions(+)
>> create mode 100644 meta/recipes-core/glibc/glibc/CVE-2016-4429.patch
>>
>> diff --git a/meta/recipes-core/glibc/glibc/CVE-2016-4429.patch b/meta/recipes-core/glibc/glibc/CVE-2016-4429.patch
>> new file mode 100644
>> index 0000000..074c60d
>> --- /dev/null
>> +++ b/meta/recipes-core/glibc/glibc/CVE-2016-4429.patch
>> @@ -0,0 +1,86 @@
>> +From bc779a1a5b3035133024b21e2f339fe4219fb11c Mon Sep 17 00:00:00 2001
>> +From: Florian Weimer <fweimer@redhat.com>
>> +Date: Mon, 23 May 2016 20:18:34 +0200
>> +Subject: [PATCH] CVE-2016-4429: sunrpc: Do not use alloca in clntudp_call [BZ
>> + #20112]
>> +
>> +The call is technically in a loop, and under certain circumstances
>> +(which are quite difficult to reproduce in a test case), alloca
>> +can be invoked repeatedly during a single call to clntudp_call.
>> +As a result, the available stack space can be exhausted (even
>> +though individual alloca sizes are bounded implicitly by what
>> +can fit into a UDP packet, as a side effect of the earlier
>> +successful send operation).
>
> this should be covered with latest pull I have sent especially this patch
> https://patchwork.openembedded.org/patch/126637/
>
> would be nice if you could test this one out.
This fix in the update you have submitted for master.
This is one of those "Do I fix master knowing updates are imitate."
quandaries. Time to address stable branches.
- armin
>
>> +---
>> + ChangeLog | 7 +++++++
>> + NEWS | 4 ++++
>> + sunrpc/clnt_udp.c | 10 +++++++++-
>> + 3 files changed, 20 insertions(+), 1 deletion(-)
>> +
>> +Upstream-Status: Backport
>> +CVE: CVE-2016-4429
>> +Signed-of-by: Armin Kuster <akuster@mvista.com>
>> +
>> +Index: git/ChangeLog
>> +===================================================================
>> +--- git.orig/ChangeLog
>> ++++ git/ChangeLog
>> +@@ -1,3 +1,9 @@
>> ++2016-05-23 Florian Weimer <fweimer@redhat.com>
>> ++ CVE-2016-4429
>> ++ [BZ #20112]
>> ++ * sunrpc/clnt_udp.c (clntudp_call): Use malloc/free for the error
>> ++ payload.
>> ++
>> + 2016-05-11 Florian Weimer <fweimer@redhat.com>
>> +
>> + Do not use mcheck in localedef.
>> +Index: git/NEWS
>> +===================================================================
>> +--- git.orig/NEWS
>> ++++ git/NEWS
>> +@@ -48,6 +48,10 @@ Security related changes:
>> + called with the GLOB_ALTDIRFUNC flag and encountered a long file name.
>> + Reported by Alexander Cherepanov. (CVE-2016-1234)
>> +
>> ++* The Sun RPC UDP client could exhaust all available stack space when
>> ++ flooded with crafted ICMP and UDP messages. Reported by Aldy Hernandez'
>> ++ alloca plugin for GCC. (CVE-2016-4429)
>> ++
>> + The following bugs are resolved with this release:
>> +
>> + [The release manager will add the list generated by
>> +Index: git/sunrpc/clnt_udp.c
>> +===================================================================
>> +--- git.orig/sunrpc/clnt_udp.c
>> ++++ git/sunrpc/clnt_udp.c
>> +@@ -388,9 +388,15 @@ send_again:
>> + struct sock_extended_err *e;
>> + struct sockaddr_in err_addr;
>> + struct iovec iov;
>> +- char *cbuf = (char *) alloca (outlen + 256);
>> ++ char *cbuf = malloc (outlen + 256);
>> + int ret;
>> +
>> ++ if (cbuf == NULL)
>> ++ {
>> ++ cu->cu_error.re_errno = errno;
>> ++ return (cu->cu_error.re_status = RPC_CANTRECV);
>> ++ }
>> ++
>> + iov.iov_base = cbuf + 256;
>> + iov.iov_len = outlen;
>> + msg.msg_name = (void *) &err_addr;
>> +@@ -415,10 +421,12 @@ send_again:
>> + cmsg = CMSG_NXTHDR (&msg, cmsg))
>> + if (cmsg->cmsg_level == SOL_IP && cmsg->cmsg_type == IP_RECVERR)
>> + {
>> ++ free (cbuf);
>> + e = (struct sock_extended_err *) CMSG_DATA(cmsg);
>> + cu->cu_error.re_errno = e->ee_errno;
>> + return (cu->cu_error.re_status = RPC_CANTRECV);
>> + }
>> ++ free (cbuf);
>> + }
>> + #endif
>> + do
>> diff --git a/meta/recipes-core/glibc/glibc_2.24.bb b/meta/recipes-core/glibc/glibc_2.24.bb
>> index 77630e3..c2a31e0 100644
>> --- a/meta/recipes-core/glibc/glibc_2.24.bb
>> +++ b/meta/recipes-core/glibc/glibc_2.24.bb
>> @@ -37,6 +37,7 @@ SRC_URI = "${GLIBC_GIT_URI};branch=${SRCBRANCH};name=glibc \
>> file://0023-eglibc-Install-PIC-archives.patch \
>> file://0024-eglibc-Forward-port-cross-locale-generation-support.patch \
>> file://0025-Define-DUMMY_LOCALE_T-if-not-defined.patch \
>> + file://CVE-2016-4429.patch \
>> "
>>
>> SRC_URI += "\
>> --
>> 2.3.5
>>
>> --
>> _______________________________________________
>> Openembedded-core mailing list
>> Openembedded-core@lists.openembedded.org
>> http://lists.openembedded.org/mailman/listinfo/openembedded-core
prev parent reply other threads:[~2016-07-09 17:25 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-07-08 22:48 [master][PATCH] glibc: CVE-2016-4429 Armin Kuster
2016-07-08 23:08 ` Khem Raj
2016-07-09 17:25 ` akuster808 [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5781338B.6070800@gmail.com \
--to=akuster808@gmail.com \
--cc=akuster@mvisa.com \
--cc=akuster@mvista.com \
--cc=openembedded-core@lists.openembedded.org \
--cc=raj.khem@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.