Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1691112

Re: [PATCH 1/1] mm/slub.c: add a naive detection of double free or corruption

From Alexander Popov <alex.popov@linux.com>
Newsgroups linux.kernel
Subject Re: [PATCH 1/1] mm/slub.c: add a naive detection of double free or corruption
Date 2017-07-19 10:40 +0200
Message-ID <u4SGu-5YR-21@gated-at.bofh.it> (permalink)
References (2 earlier) <u4iMH-8w3-43@gated-at.bofh.it> <u4jz4-zE-15@gated-at.bofh.it> <u4jIJ-Dg-9@gated-at.bofh.it> <u4GP0-6Cx-21@gated-at.bofh.it> <u4GYF-6V8-1@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


On 18.07.2017 23:04, Kees Cook wrote:
> On Tue, Jul 18, 2017 at 12:56 PM, Alexander Popov <alex.popov@linux.com> wrote:
>> On 17.07.2017 22:11, Kees Cook wrote:
>>> Let's merge this with the proposed CONFIG_FREELIST_HARDENED, then the
>>> performance change is behind a config, and we gain the rest of the
>>> freelist protections at the same time:
>>>
>>> http://www.openwall.com/lists/kernel-hardening/2017/07/06/1
>>
>> Hello Kees,
>>
>> If I change BUG_ON() to VM_BUG_ON(), this check will work at least on Fedora
>> since it has CONFIG_DEBUG_VM enabled. Debian based distros have this option
>> disabled. Do you like that more than having this check under
>> CONFIG_FREELIST_HARDENED?
> 
> I think there are two issues: first, this should likely be under
> CONFIG_FREELIST_HARDENED since Christoph hasn't wanted to make these
> changes enabled by default (if I'm understanding his earlier review
> comments to me).

Ok, I'll rebase onto FREELIST_HARDENED and test it all together.

> The second issue is what to DO when a double-free is
> discovered. Is there any way to make it safe/survivable? If not, I
> think it should just be BUG_ON(). If it can be made safe, then likely
> a WARN_ONCE and do whatever is needed to prevent the double-free.

Please correct me if I'm wrong. It seems to me that double-free is a dangerous
situation that indicates some serious kernel bug (which might be maliciously
exploited). So I would not trust / rely on the process which experiences a
double-free error in the kernel mode.

But I guess the reaction to it should depend on the Linux kernel policy of
handling faults. Is it defined explicitly?

Anyway, if we try to mitigate the effect from a double-free error _here_ (for
example, skip putting the duplicated object to the freelist), I think we should
do the same for other cases of double-free and memory corruptions.

>> If you insist on putting this check under CONFIG_FREELIST_HARDENED, should I
>> rebase onto your patch and send again?
> 
> That would be preferred for me -- I'd like to have both checks. :)

Ok.

Best regards,
Alexander

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

Re: [PATCH 1/1] mm/slub.c: add a naive detection of double free or  corruption Alexander Popov <alex.popov@linux.com> - 2017-07-18 22:00 +0200
  Re: [PATCH 1/1] mm/slub.c: add a naive detection of double free or corruption Kees Cook <keescook@chromium.org> - 2017-07-18 22:10 +0200
    Re: [PATCH 1/1] mm/slub.c: add a naive detection of double free or  corruption Alexander Popov <alex.popov@linux.com> - 2017-07-19 10:40 +0200
    Re: [PATCH 1/1] mm/slub.c: add a naive detection of double free or  corruption Christopher Lameter <cl@linux.com> - 2017-07-19 16:10 +0200

csiph-web