Received: by 2002:a05:6a10:8c0a:0:0:0:0 with SMTP id go10csp1540145pxb; Mon, 22 Feb 2021 04:52:50 -0800 (PST) X-Google-Smtp-Source: ABdhPJysuiC3KBFw5G5L7xMhb3FezOGNDXMJIszs4c/cM6m/VnUPq/IllZXXoccywgkQPSCYhxdq X-Received: by 2002:a17:906:3a10:: with SMTP id z16mr20692981eje.483.1613998370024; Mon, 22 Feb 2021 04:52:50 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1613998370; cv=none; d=google.com; s=arc-20160816; b=nJYalEre5/Fs2Ln+E3Lfv+8G2+MDtAN5ZJc+XnVmqNzysOLoErFOmmlRBcO9+VkwI+ bpSPKECrgd9xwAlr0UbRcVeT7eXmwrLdEwK4K1n+9g5ifJD+626L8zpU3UamJjLshnZW yEGIPtVV7lQ4csik8cnUzqIlon/41VjuLNN0ZoaRoj4JQtMqYMGr2JLCTER7LgOcPsHX i0LL7LcXF7JcKXcy9t6EaMIpAL1YfT06hEeNZQ/8kFJMT15VYJJ3CreJZGx5QIOmcz5j y9JarWLhvhpn/1yPgfdfos44oHnJMjj63wyTXn/17MAnPhyFVXjJbEvVmasLSVSTfHPk l1Rw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=gglHeoLJRxKpZCU5MyOw4tsqVayRkQ46dmA8JUFRdVc=; b=nxHnX8qp7u0NcioNCJqgKmWKlP+H6yMshIyHpG2/BE4W+t1E1cPqCscH1FXy3hGqQ7 eJt0Bs/wEfI4Mqlu1YZQJog0twenINdWve94dcaSM2aH3kPw4Kkg3UDmJJEEuV3lIC/I dGV4hNYhFptDX49Y+PAEkb0ASIUBWRQjzNkCjZ77qXDgPANIrrCoasiBcA8XUBA6DzGw guBVIJ35b8aFIIunIwXv0x9c303xtVsWr5lLPVPJDdLW4q8g/FmnNWpO0YaEFplMbYxr 4H9wtIu6zlnPeIvw0pLg8zDUvTtmJPbyZbD/YGXUGNXehOjiJN30XIrJ+8mvlFDHQX64 axzw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=hlR1sLgn; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id t5si11377954edw.123.2021.02.22.04.52.26; Mon, 22 Feb 2021 04:52:50 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=hlR1sLgn; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231442AbhBVMva (ORCPT + 99 others); Mon, 22 Feb 2021 07:51:30 -0500 Received: from mail.kernel.org ([198.145.29.99]:45308 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231157AbhBVMR5 (ORCPT ); Mon, 22 Feb 2021 07:17:57 -0500 Received: by mail.kernel.org (Postfix) with ESMTPSA id 1BA0864F12; Mon, 22 Feb 2021 12:17:40 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1613996261; bh=QDBg45RFT+SOm/lag6l4rj0iybT9eBugjWUvyOd+7iY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=hlR1sLgnonip5vlWjuOJx8wXwnAAn1aO0AUfe/v6zdNmEJxEr0aY31WSCb2OcX9ky 2ebdWPloLCwE1d1A5BxgF2zjsQlneWMxw3L+0d5+APjeOWhJqokd7u+bgyk4Sg9+b7 nF63hQtXkTY5O9ouaxdWgUX2LS5F6n/pvcwplxHI= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, syzbot+c2a7e5c5211605a90865@syzkaller.appspotmail.com, Sabyrzhan Tasbolatov , Jakub Kicinski Subject: [PATCH 4.19 35/50] net/qrtr: restrict user-controlled length in qrtr_tun_write_iter() Date: Mon, 22 Feb 2021 13:13:26 +0100 Message-Id: <20210222121026.244062783@linuxfoundation.org> X-Mailer: git-send-email 2.30.1 In-Reply-To: <20210222121019.925481519@linuxfoundation.org> References: <20210222121019.925481519@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Sabyrzhan Tasbolatov commit 2a80c15812372e554474b1dba0b1d8e467af295d upstream. syzbot found WARNING in qrtr_tun_write_iter [1] when write_iter length exceeds KMALLOC_MAX_SIZE causing order >= MAX_ORDER condition. Additionally, there is no check for 0 length write. [1] WARNING: mm/page_alloc.c:5011 [..] Call Trace: alloc_pages_current+0x18c/0x2a0 mm/mempolicy.c:2267 alloc_pages include/linux/gfp.h:547 [inline] kmalloc_order+0x2e/0xb0 mm/slab_common.c:837 kmalloc_order_trace+0x14/0x120 mm/slab_common.c:853 kmalloc include/linux/slab.h:557 [inline] kzalloc include/linux/slab.h:682 [inline] qrtr_tun_write_iter+0x8a/0x180 net/qrtr/tun.c:83 call_write_iter include/linux/fs.h:1901 [inline] Reported-by: syzbot+c2a7e5c5211605a90865@syzkaller.appspotmail.com Signed-off-by: Sabyrzhan Tasbolatov Link: https://lore.kernel.org/r/20210202092059.1361381-1-snovitoll@gmail.com Signed-off-by: Jakub Kicinski Signed-off-by: Greg Kroah-Hartman --- net/qrtr/tun.c | 6 ++++++ 1 file changed, 6 insertions(+) --- a/net/qrtr/tun.c +++ b/net/qrtr/tun.c @@ -80,6 +80,12 @@ static ssize_t qrtr_tun_write_iter(struc ssize_t ret; void *kbuf; + if (!len) + return -EINVAL; + + if (len > KMALLOC_MAX_SIZE) + return -ENOMEM; + kbuf = kzalloc(len, GFP_KERNEL); if (!kbuf) return -ENOMEM;