[{"id":1760326,"web_url":"http://patchwork.ozlabs.org/comment/1760326/","msgid":"<CAPDqMergN4485=Lo4MCU1VrH_NBuHuP=z-w3fV1n0cc2Rn=-Og@mail.gmail.com>","list_archive_url":null,"date":"2017-08-30T16:42:52","subject":"Re: [PATCH net] kcm: do not attach PF_KCM sockets to avoid deadlock","submitter":{"id":72064,"url":"http://patchwork.ozlabs.org/api/people/72064/","name":"Tom Herbert","email":"tom@quantonium.net"},"content":"On Wed, Aug 30, 2017 at 9:29 AM, Eric Dumazet <eric.dumazet@gmail.com> wrote:\n> From: Eric Dumazet <edumazet@google.com>\n>\n> syzkaller had no problem to trigger a deadlock, attaching a KCM socket\n> to another one (or itself). (original syzkaller report was a very\n> confusing lockdep splat during a sendmsg())\n>\n> It seems KCM claims to only support TCP, but no enforcement is done,\n> so we might need to add additional checks.\n>\n> Fixes: ab7ac4eb9832 (\"kcm: Kernel Connection Multiplexor module\")\n> Signed-off-by: Eric Dumazet <edumazet@google.com>\n> Reported-by: Dmitry Vyukov <dvyukov@google.com>\n\nAcked-by: Tom Herbert <tom@quantonium.net>\n\n> ---\n>  net/kcm/kcmsock.c |    4 ++++\n>  1 file changed, 4 insertions(+)\n>\n> diff --git a/net/kcm/kcmsock.c b/net/kcm/kcmsock.c\n> index 48e993b2dbcf1afae04968ed840e2e98c2cf6772..af4e76ac88ff0817398d1d7460a41f0cd5fe6f30 100644\n> --- a/net/kcm/kcmsock.c\n> +++ b/net/kcm/kcmsock.c\n> @@ -1387,6 +1387,10 @@ static int kcm_attach(struct socket *sock, struct socket *csock,\n>         if (!csk)\n>                 return -EINVAL;\n>\n> +       /* We must prevent loops or risk deadlock ! */\n> +       if (csk->sk_family == PF_KCM)\n> +               return -EOPNOTSUPP;\n> +\n>         psock = kmem_cache_zalloc(kcm_psockp, GFP_KERNEL);\n>         if (!psock)\n>                 return -ENOMEM;\n>\n>","headers":{"Return-Path":"<netdev-owner@vger.kernel.org>","X-Original-To":"patchwork-incoming@ozlabs.org","Delivered-To":"patchwork-incoming@ozlabs.org","Authentication-Results":["ozlabs.org;\n\tspf=none (mailfrom) smtp.mailfrom=vger.kernel.org\n\t(client-ip=209.132.180.67; helo=vger.kernel.org;\n\tenvelope-from=netdev-owner@vger.kernel.org;\n\treceiver=<UNKNOWN>)","ozlabs.org; dkim=pass (2048-bit key;\n\tunprotected) header.d=quantonium-net.20150623.gappssmtp.com\n\theader.i=@quantonium-net.20150623.gappssmtp.com\n\theader.b=\"Hc99dibR\"; dkim-atps=neutral"],"Received":["from vger.kernel.org (vger.kernel.org [209.132.180.67])\n\tby ozlabs.org (Postfix) with ESMTP id 3xjBBn3jB4z9sNn\n\tfor <patchwork-incoming@ozlabs.org>;\n\tThu, 31 Aug 2017 02:42:57 +1000 (AEST)","(majordomo@vger.kernel.org) by vger.kernel.org via listexpand\n\tid S1751947AbdH3Qmz (ORCPT <rfc822;patchwork-incoming@ozlabs.org>);\n\tWed, 30 Aug 2017 12:42:55 -0400","from mail-wm0-f47.google.com ([74.125.82.47]:34319 \"EHLO\n\tmail-wm0-f47.google.com\" rhost-flags-OK-OK-OK-OK) by vger.kernel.org\n\twith ESMTP id S1751883AbdH3Qmy (ORCPT\n\t<rfc822;netdev@vger.kernel.org>); Wed, 30 Aug 2017 12:42:54 -0400","by mail-wm0-f47.google.com with SMTP id 137so2840951wmj.1\n\tfor <netdev@vger.kernel.org>; Wed, 30 Aug 2017 09:42:53 -0700 (PDT)","by 10.223.198.2 with HTTP; Wed, 30 Aug 2017 09:42:52 -0700 (PDT)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=quantonium-net.20150623.gappssmtp.com; s=20150623;\n\th=mime-version:in-reply-to:references:from:date:message-id:subject:to\n\t:cc; bh=JgDKDG+BNHpX01kouOHWv3KgRX0Ec5bbvHKmJL9wu2I=;\n\tb=Hc99dibRWkg/ooBoBUmH7eqo6VBXUfZFcaVD8IJIXsmlq89I7tIdV9lagciCs2n4Bq\n\tDHl9WPCrYHBgc91m5oaxPSVkhSYwfx6MWuMz//qMZEuHJKg5Mhe698tQCwv8t/mj0JAr\n\tecewsJ9J262E6HRZgvqDrQwGwHzmOlM//UZWbHwEuFgZ5hg93tjNuryXaeHRTzb7Dzlg\n\tXNLI3FkTbGCBKGpBqYIVxqiTsH00rHcwO78/49c6N5KP1Kf0VeIP+yhK1vUBD9faxueh\n\tgoe783FVGFvBgq4gAtMkFQASuqiRgg7+zIYx6e8/nHhHr0eVXvijQiWy9FLEx0yKMMEG\n\tBSlg==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20161025;\n\th=x-gm-message-state:mime-version:in-reply-to:references:from:date\n\t:message-id:subject:to:cc;\n\tbh=JgDKDG+BNHpX01kouOHWv3KgRX0Ec5bbvHKmJL9wu2I=;\n\tb=YjNNSG4qyVg+BLts7j9jffGeiu3f02zZazlItEB9ghQGUAsHVtW26bXeni9Y9wkbRv\n\tKeXKY5PVcZY4VhNMqTsimQ6XoL8/KcgJzZC6XHor1Ptxsu2Ke01+E5eVvtaCbInZu2c1\n\txNXKB13cdUJ5q8HPq3BknhU4C0bRz6USmqfED9e9jn0Jbyi3KcGLMTVtdQNdZIl2VjXU\n\t+LUoVsQO+9N4c8KHebJguKffTKtdW395JAujzQaax6y2+nHtewML+JgkWgqhpCrFdxuz\n\thVhFDS4PeNJgwG0CHDfSrkwh0zHZWoVwulxOaQdqQN3h1KtmByagWK1BVXRvFElUHCdD\n\tly/w==","X-Gm-Message-State":"AHYfb5j6t5nb2oKoGxX3uazOP/2agwXXeI2KBEwJu2G7SpwAUJ5Zl7gk\n\tbktprxSzu57RM8yYpAEEXeBk0Y0rW9gE","X-Received":"by 10.28.163.66 with SMTP id m63mr1349436wme.28.1504111373031;\n\tWed, 30 Aug 2017 09:42:53 -0700 (PDT)","MIME-Version":"1.0","In-Reply-To":"<1504110571.11498.120.camel@edumazet-glaptop3.roam.corp.google.com>","References":"<1504110571.11498.120.camel@edumazet-glaptop3.roam.corp.google.com>","From":"Tom Herbert <tom@quantonium.net>","Date":"Wed, 30 Aug 2017 09:42:52 -0700","Message-ID":"<CAPDqMergN4485=Lo4MCU1VrH_NBuHuP=z-w3fV1n0cc2Rn=-Og@mail.gmail.com>","Subject":"Re: [PATCH net] kcm: do not attach PF_KCM sockets to avoid deadlock","To":"Eric Dumazet <eric.dumazet@gmail.com>","Cc":"David Miller <davem@davemloft.net>, netdev <netdev@vger.kernel.org>","Content-Type":"text/plain; charset=\"UTF-8\"","Sender":"netdev-owner@vger.kernel.org","Precedence":"bulk","List-ID":"<netdev.vger.kernel.org>","X-Mailing-List":"netdev@vger.kernel.org"}},{"id":1760556,"web_url":"http://patchwork.ozlabs.org/comment/1760556/","msgid":"<20170830.155538.944885056033122938.davem@davemloft.net>","list_archive_url":null,"date":"2017-08-30T22:55:38","subject":"Re: [PATCH net] kcm: do not attach PF_KCM sockets to avoid deadlock","submitter":{"id":15,"url":"http://patchwork.ozlabs.org/api/people/15/","name":"David Miller","email":"davem@davemloft.net"},"content":"From: Eric Dumazet <eric.dumazet@gmail.com>\nDate: Wed, 30 Aug 2017 09:29:31 -0700\n\n> From: Eric Dumazet <edumazet@google.com>\n> \n> syzkaller had no problem to trigger a deadlock, attaching a KCM socket\n> to another one (or itself). (original syzkaller report was a very\n> confusing lockdep splat during a sendmsg())\n> \n> It seems KCM claims to only support TCP, but no enforcement is done,\n> so we might need to add additional checks.\n> \n> Fixes: ab7ac4eb9832 (\"kcm: Kernel Connection Multiplexor module\")\n> Signed-off-by: Eric Dumazet <edumazet@google.com>\n> Reported-by: Dmitry Vyukov <dvyukov@google.com>\n\nApplied and queued up for -stable, thanks.","headers":{"Return-Path":"<netdev-owner@vger.kernel.org>","X-Original-To":"patchwork-incoming@ozlabs.org","Delivered-To":"patchwork-incoming@ozlabs.org","Authentication-Results":"ozlabs.org;\n\tspf=none (mailfrom) smtp.mailfrom=vger.kernel.org\n\t(client-ip=209.132.180.67; helo=vger.kernel.org;\n\tenvelope-from=netdev-owner@vger.kernel.org;\n\treceiver=<UNKNOWN>)","Received":["from vger.kernel.org (vger.kernel.org [209.132.180.67])\n\tby ozlabs.org (Postfix) with ESMTP id 3xjLSv4ttZz9s83\n\tfor <patchwork-incoming@ozlabs.org>;\n\tThu, 31 Aug 2017 08:55:43 +1000 (AEST)","(majordomo@vger.kernel.org) by vger.kernel.org via listexpand\n\tid S1750998AbdH3Wzk (ORCPT <rfc822;patchwork-incoming@ozlabs.org>);\n\tWed, 30 Aug 2017 18:55:40 -0400","from shards.monkeyblade.net ([184.105.139.130]:36148 \"EHLO\n\tshards.monkeyblade.net\" rhost-flags-OK-OK-OK-OK) by vger.kernel.org\n\twith ESMTP id S1750814AbdH3Wzj (ORCPT\n\t<rfc822;netdev@vger.kernel.org>); Wed, 30 Aug 2017 18:55:39 -0400","from localhost (74-93-104-98-Washington.hfc.comcastbusiness.net\n\t[74.93.104.98]) (using TLSv1 with cipher AES256-SHA (256/256 bits))\n\t(Client did not present a certificate)\n\t(Authenticated sender: davem-davemloft)\n\tby shards.monkeyblade.net (Postfix) with ESMTPSA id AD59812F78B9D;\n\tWed, 30 Aug 2017 15:55:38 -0700 (PDT)"],"Date":"Wed, 30 Aug 2017 15:55:38 -0700 (PDT)","Message-Id":"<20170830.155538.944885056033122938.davem@davemloft.net>","To":"eric.dumazet@gmail.com","Cc":"netdev@vger.kernel.org, tom@quantonium.net","Subject":"Re: [PATCH net] kcm: do not attach PF_KCM sockets to avoid deadlock","From":"David Miller <davem@davemloft.net>","In-Reply-To":"<1504110571.11498.120.camel@edumazet-glaptop3.roam.corp.google.com>","References":"<1504110571.11498.120.camel@edumazet-glaptop3.roam.corp.google.com>","X-Mailer":"Mew version 6.7 on Emacs 25.2 / Mule 6.0 (HANACHIRUSATO)","Mime-Version":"1.0","Content-Type":"Text/Plain; charset=us-ascii","Content-Transfer-Encoding":"7bit","X-Greylist":"Sender succeeded SMTP AUTH, not delayed by\n\tmilter-greylist-4.5.12 (shards.monkeyblade.net\n\t[149.20.54.216]); Wed, 30 Aug 2017 15:55:38 -0700 (PDT)","Sender":"netdev-owner@vger.kernel.org","Precedence":"bulk","List-ID":"<netdev.vger.kernel.org>","X-Mailing-List":"netdev@vger.kernel.org"}}]