Received: by 2002:a05:6a10:413:0:0:0:0 with SMTP id 19csp149792pxp; Fri, 11 Mar 2022 01:09:16 -0800 (PST) X-Google-Smtp-Source: ABdhPJzf3yoWjhCRtl6ugm7Uqx4PvmFw42qrTUVbLOXfFwh5ql8PWntNlGB8VmKOQfkMPXjwoQ6X X-Received: by 2002:a17:906:c214:b0:6b3:d0d6:9fe6 with SMTP id d20-20020a170906c21400b006b3d0d69fe6mr7566734ejz.150.1646989756526; Fri, 11 Mar 2022 01:09:16 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1646989756; cv=none; d=google.com; s=arc-20160816; b=verf7kasCfAmVyF5xBK4mFczfnrZ2lP+RnxvUYGwNH++p/4Kclmfd3JR3A9j7YkWbk laGGygUvskGNRj+lW0nvMHxDZwi+C4+3tSYGPWl2sIDhdHpYIV0678q1z5q2KW0a2Bg8 mHiQGnMWpCCdOVhk+xBns27kidl4XxW4MvmvCIyJEn2YtVyCRpOFAXcdlNodlNgzgYGq LSxMWJRLBHkSv4g4ws+Aiy/4Qj6M8SwyWwnAvr7P3vqBB0Yfiob2LMu1b1pBoRUUMpGj xHxGYCXy4EyLfHGgTgPMo8qVd8ZKkbUbynu3vgJjPK9NojBst7QHaHxTmTTS8FbW0Uq0 9Rcg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:in-reply-to:from :references:cc:to:content-language:subject:user-agent:mime-version :date:message-id:dkim-signature; bh=1coxOHy+MiOVkaWgzSw++tkxGlirBpUlCMovtClURhw=; b=YHs6bG/PyikOUXCdwF5kTTV40xmBg4m/4rh4ibpbRg0sRJw4mxT1kgECEguYXsGix2 Oud5bwI25Zqk9PuXrhsxTQ6POc7FrP+5LXDe4PZxTgfQ/JE9gdLtdfFZd49b5vulEj2Q hgHgqxXnbygFR5c2rIMx1MwDDE6SRKbuM/BOF9cKrGyOTNF1wF6QPY6FZLcJEz+62cls Kh/Q/xcSm1o5b1oh+J6ohI18hpr7EWWx2uYjxW8Hb1JMdruuMKD7IO3X+ltYUsFxGimK /xr6LafZ2OTAkeegpqlrIrua4e47S6O7ZYuh7I5EbI8Zq2zy7Rx2TgzKtK/MnN0RiPgt mf1Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=CjWfotxA; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id f15-20020a05640214cf00b00416702706ccsi4552934edx.140.2022.03.11.01.08.51; Fri, 11 Mar 2022 01:09:16 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=CjWfotxA; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1344512AbiCJXFT (ORCPT + 99 others); Thu, 10 Mar 2022 18:05:19 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47160 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231866AbiCJXFS (ORCPT ); Thu, 10 Mar 2022 18:05:18 -0500 Received: from mail-pl1-x634.google.com (mail-pl1-x634.google.com [IPv6:2607:f8b0:4864:20::634]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3DB49CEA24 for ; Thu, 10 Mar 2022 15:04:16 -0800 (PST) Received: by mail-pl1-x634.google.com with SMTP id n15so6217883plh.2 for ; Thu, 10 Mar 2022 15:04:16 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=message-id:date:mime-version:user-agent:subject:content-language:to :cc:references:from:in-reply-to:content-transfer-encoding; bh=1coxOHy+MiOVkaWgzSw++tkxGlirBpUlCMovtClURhw=; b=CjWfotxA33yOsiAJ7O8Fm3Q6c+I6BF7K7x2OwbbcHiGwT0SPnVY4OXhan3k5QaGlbt WU3LZJ+4LVyE4wxo5yZEYRRY6oVg/CwycFcrLAJA/7Sv9vc+4OPp3aEicV+dmxkIPNu7 B9mDme2VHkIEA86cgc3LRs1aJvhXqL+HivHuz8+8IKsulr7JWTB+EfFZ/70pTeYm0l5s jbOQgfW0slhcjisOZ3zLqjDUjedFHxTul8fich1wTn1OV6bH8Bfv3gEdGQUbT/Jx7vRU F+KzSYjRifjUoT98RTyxdS3W93t8RAjJ9ejZEz5cAaZ8uPIByzG/qpEFK88zunFNx8JJ rnvg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:message-id:date:mime-version:user-agent:subject :content-language:to:cc:references:from:in-reply-to :content-transfer-encoding; bh=1coxOHy+MiOVkaWgzSw++tkxGlirBpUlCMovtClURhw=; b=H1u4YGiB1wMjOozeHiuX3HvdHgCbEA43anymQtVHUpNuAf8rM3uboooCJYfcNWu8Ie 04NrnJFWxdZArm4LqH8ZNZXk0/9xbk2Wx0SpdTiNG1Cp2tocoksJa/Cs+RvsDwDbMy+r POhgmHMUqJwx5K959QWeDa5zoBlWgUMijs4pJgQ3f8QKqlFke+KNpbmZHMXJNbMuh6fm WRsYz+h7RgbqrMU7T43ZRbLBgb1ClUFyHKB4Tl0zryyyV+H5OJKbjiP9YZIctedE/mOj VcC5bi/ptjK7D5LOtinx0XVFcb5tq4/GurrBDIA6toKrPSQkYODWe7JmdsZLshOwETXr xnOA== X-Gm-Message-State: AOAM532NPhBZ0NvDa1hq+0SJxA/b/bmaULytlcsdpS8VZ9+8J5kyFUVZ sU5TYHCUf+xW7KXlrka0FVgA8w== X-Received: by 2002:a17:903:124a:b0:151:99fe:1a10 with SMTP id u10-20020a170903124a00b0015199fe1a10mr7338107plh.87.1646953455727; Thu, 10 Mar 2022 15:04:15 -0800 (PST) Received: from [192.168.254.17] ([50.39.160.154]) by smtp.gmail.com with ESMTPSA id rj14-20020a17090b3e8e00b001bf50a8b468sm11740225pjb.51.2022.03.10.15.04.14 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 10 Mar 2022 15:04:15 -0800 (PST) Message-ID: <77a44185-c9cd-21f5-125f-b8eec7a66537@linaro.org> Date: Thu, 10 Mar 2022 15:04:14 -0800 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.5.0 Subject: Re: [PATCH v2] net: ipv6: fix skb_over_panic in __ip6_append_data Content-Language: en-US To: Willem de Bruijn , Jakub Kicinski Cc: David Miller , Hideaki YOSHIFUJI , David Ahern , Alexei Starovoitov , Daniel Borkmann , Andrii Nakryiko , Martin KaFai Lau , Song Liu , Yonghong Song , John Fastabend , KP Singh , Network Development , bpf , LKML , stable , syzbot+e223cf47ec8ae183f2a0@syzkaller.appspotmail.com, Willem de Bruijn References: <20220310221328.877987-1-tadeusz.struk@linaro.org> <20220310143011.00c21f53@kicinski-fedora-pc1c0hjn.dhcp.thefacebook.com> From: Tadeusz Struk In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,NICE_REPLY_A,RCVD_IN_DNSWL_NONE, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 3/10/22 14:43, Willem de Bruijn wrote: > On Thu, Mar 10, 2022 at 5:30 PM Jakub Kicinski wrote: >> >> On Thu, 10 Mar 2022 14:13:28 -0800 Tadeusz Struk wrote: >>> diff --git a/net/ipv6/ip6_output.c b/net/ipv6/ip6_output.c >>> index 4788f6b37053..6d45112322a0 100644 >>> --- a/net/ipv6/ip6_output.c >>> +++ b/net/ipv6/ip6_output.c >>> @@ -1649,6 +1649,16 @@ static int __ip6_append_data(struct sock *sk, >>> skb->protocol = htons(ETH_P_IPV6); >>> skb->ip_summed = csummode; >>> skb->csum = 0; >>> + >>> + /* >>> + * Check if there is still room for payload >>> + */ >> >> TBH I think the check is self-explanatory. Not worth a banner comment, >> for sure. >> >>> + if (fragheaderlen >= mtu) { >>> + err = -EMSGSIZE; >>> + kfree_skb(skb); >>> + goto error; >>> + } >> >> Not sure if Willem prefers this placement, but seems like we can lift >> this check out of the loop, as soon as fragheaderlen and mtu are known. >> >>> /* reserve for fragmentation and ipsec header */ >>> skb_reserve(skb, hh_len + sizeof(struct frag_hdr) + >>> dst_exthdrlen); > > Just updating this boundary check will do? > > if (mtu < fragheaderlen || > ((mtu - fragheaderlen) & ~7) + fragheaderlen < > sizeof(struct frag_hdr)) > goto emsgsize; Yes, it will. v3 on its way. -- Thanks, Tadeusz