2015-07-02 08:28:00

by Dick Snippe

[permalink] [raw]
Subject: CVE-2015-1805 and 3.14-longterm?

Hello,

I'm sorry to bother you with this, but lwn.net reported a rather serious
security issue a couple of weeks ago:

http://lwn.net/Articles/646590/
https://bugzilla.redhat.com/show_bug.cgi?id=1202855
CVE-2015-1805
"It was found that the Linux kernel's implementation of vectored pipe
read and write functionality did not take into account the I/O vectors
that were already processed when retrying after a failed atomic access
operation, potentially resulting in memory corruption due to an I/O
vector array overrun. A local, unprivileged user could use this flaw to
crash the system or, potentially, escalate their privileges on the
system."

It appears that these upstream fixes haven't made it to 3.14.4[456]:

http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=f0d1bec9d58d4c038d0ac958c9af82be6eb18045
http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=637b58c2887e5e57850865839cc75f59184b23d1

I'm just a (very happy!) user of the -longterm kernels, so I don't
know how this normally works. But it would appear that this bug still
exists in the -longterm kernels.

--
Dick Snippe, internetbeheerder NPO ICT team Media \ fight war
Postbus 26444, 1202 JJ Hilversum, [email protected] \ not wars
+31 35 6773555, Bart de Graaffweg 2, 1217 ZL Hilversum


2015-08-14 16:55:39

by Greg KH

[permalink] [raw]
Subject: Re: CVE-2015-1805 and 3.14-longterm?

On Thu, Jul 02, 2015 at 10:19:34AM +0200, Dick Snippe wrote:
> Hello,
>
> I'm sorry to bother you with this, but lwn.net reported a rather serious
> security issue a couple of weeks ago:
>
> http://lwn.net/Articles/646590/
> https://bugzilla.redhat.com/show_bug.cgi?id=1202855
> CVE-2015-1805
> "It was found that the Linux kernel's implementation of vectored pipe
> read and write functionality did not take into account the I/O vectors
> that were already processed when retrying after a failed atomic access
> operation, potentially resulting in memory corruption due to an I/O
> vector array overrun. A local, unprivileged user could use this flaw to
> crash the system or, potentially, escalate their privileges on the
> system."
>
> It appears that these upstream fixes haven't made it to 3.14.4[456]:
>
> http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=f0d1bec9d58d4c038d0ac958c9af82be6eb18045
> http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=637b58c2887e5e57850865839cc75f59184b23d1
>
> I'm just a (very happy!) user of the -longterm kernels, so I don't
> know how this normally works. But it would appear that this bug still
> exists in the -longterm kernels.

I think, and I might be wrong here, but because
637b58c2887e5e57850865839cc75f59184b23d1 (switch pipe_read() to
copy_page_to_iter()) is not in the 3.14-stable tree (it showed up in
3.15), that f0d1bec9d58d4c038d0ac958c9af82be6eb18045 (new helper:
copy_page_from_iter()) isn't needed (it showed up in 3.16).

So is this a problem in the 3.14-stable tree?

thanks,

greg k-h

2015-08-14 19:17:49

by Sven Joachim

[permalink] [raw]
Subject: Re: CVE-2015-1805 and 3.14-longterm?

On 2015-08-14 18:55 +0200, Greg KH wrote:

> On Thu, Jul 02, 2015 at 10:19:34AM +0200, Dick Snippe wrote:
>> Hello,
>>
>> I'm sorry to bother you with this, but lwn.net reported a rather serious
>> security issue a couple of weeks ago:
>>
>> http://lwn.net/Articles/646590/
>> https://bugzilla.redhat.com/show_bug.cgi?id=1202855
>> CVE-2015-1805
>> "It was found that the Linux kernel's implementation of vectored pipe
>> read and write functionality did not take into account the I/O vectors
>> that were already processed when retrying after a failed atomic access
>> operation, potentially resulting in memory corruption due to an I/O
>> vector array overrun. A local, unprivileged user could use this flaw to
>> crash the system or, potentially, escalate their privileges on the
>> system."
>>
>> It appears that these upstream fixes haven't made it to 3.14.4[456]:
>>
>> http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=f0d1bec9d58d4c038d0ac958c9af82be6eb18045
>> http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=637b58c2887e5e57850865839cc75f59184b23d1
>>
>> I'm just a (very happy!) user of the -longterm kernels, so I don't
>> know how this normally works. But it would appear that this bug still
>> exists in the -longterm kernels.
>
> I think, and I might be wrong here, but because
> 637b58c2887e5e57850865839cc75f59184b23d1 (switch pipe_read() to
> copy_page_to_iter()) is not in the 3.14-stable tree (it showed up in
> 3.15), that f0d1bec9d58d4c038d0ac958c9af82be6eb18045 (new helper:
> copy_page_from_iter()) isn't needed (it showed up in 3.16).
>
> So is this a problem in the 3.14-stable tree?

It seems to have been fixed by 6b17faf3d5fa6a727c40613bdf24d73b2a59df27
(pipe: iovec: Fix memory corruption when retrying atomic copy as
non-atomic) in 3.14.46. That fix is also in 3.10.82.

Cheers,
Sven

2015-08-14 20:00:00

by Greg KH

[permalink] [raw]
Subject: Re: CVE-2015-1805 and 3.14-longterm?

On Fri, Aug 14, 2015 at 09:17:49PM +0200, Sven Joachim wrote:
> On 2015-08-14 18:55 +0200, Greg KH wrote:
>
> > On Thu, Jul 02, 2015 at 10:19:34AM +0200, Dick Snippe wrote:
> >> Hello,
> >>
> >> I'm sorry to bother you with this, but lwn.net reported a rather serious
> >> security issue a couple of weeks ago:
> >>
> >> http://lwn.net/Articles/646590/
> >> https://bugzilla.redhat.com/show_bug.cgi?id=1202855
> >> CVE-2015-1805
> >> "It was found that the Linux kernel's implementation of vectored pipe
> >> read and write functionality did not take into account the I/O vectors
> >> that were already processed when retrying after a failed atomic access
> >> operation, potentially resulting in memory corruption due to an I/O
> >> vector array overrun. A local, unprivileged user could use this flaw to
> >> crash the system or, potentially, escalate their privileges on the
> >> system."
> >>
> >> It appears that these upstream fixes haven't made it to 3.14.4[456]:
> >>
> >> http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=f0d1bec9d58d4c038d0ac958c9af82be6eb18045
> >> http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=637b58c2887e5e57850865839cc75f59184b23d1
> >>
> >> I'm just a (very happy!) user of the -longterm kernels, so I don't
> >> know how this normally works. But it would appear that this bug still
> >> exists in the -longterm kernels.
> >
> > I think, and I might be wrong here, but because
> > 637b58c2887e5e57850865839cc75f59184b23d1 (switch pipe_read() to
> > copy_page_to_iter()) is not in the 3.14-stable tree (it showed up in
> > 3.15), that f0d1bec9d58d4c038d0ac958c9af82be6eb18045 (new helper:
> > copy_page_from_iter()) isn't needed (it showed up in 3.16).
> >
> > So is this a problem in the 3.14-stable tree?
>
> It seems to have been fixed by 6b17faf3d5fa6a727c40613bdf24d73b2a59df27
> (pipe: iovec: Fix memory corruption when retrying atomic copy as
> non-atomic) in 3.14.46. That fix is also in 3.10.82.

Hey, even better, we fixed it and forgot all about it :)

greg k-h