Thread (12 messages) 12 messages, 4 authors, 2010-11-29

Re: Simple kernel attack using socketpair. easy, 100% reproductiblle, works under guest. no way to protect :(

From: Eric Dumazet <hidden>
Date: 2010-11-29 18:02:03

Possibly related (same subject, not in this thread)

Le lundi 29 novembre 2010 à 09:46 -0800, David Miller a écrit :
From: Eric Dumazet <redacted>
Date: Thu, 25 Nov 2010 15:11:39 +0100
quoted
[PATCH] af_unix: limit recursion level

Its easy to eat all kernel memory and trigger NMI watchdog, using an
exploit program that queues unix sockets on top of others.

lkml ref : http://lkml.org/lkml/2010/11/25/8

This mechanism is used in applications, one choice we have is to have a
recursion limit.

Other limits might be needed as well (if we queue other types of files),
since the passfd mechanism is currently limited by socket receive queue
sizes only.

Add a recursion_level to unix socket, allowing up to 4 levels.

Each time we send an unix socket through sendfd mechanism, we copy its
recursion level (plus one) to receiver. This recursion level is cleared
when socket receive queue is emptied.

Reported-by: Марк Коренберг <redacted>
Signed-off-by: Eric Dumazet <redacted>
Ok, since such deep recursive AF_UNIX fd sends is pretty
rediculious, it seems this is not likely to hit legitimate
use cases and thus I've applied this.

Also queued up for -stable.

Thanks!
I tested FreeBSD (latest) and got a kernel freeze as well with exploit
program.

I dont know yet how to fully fix this problem.


Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help