Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp5220544imu; Tue, 29 Jan 2019 15:10:53 -0800 (PST) X-Google-Smtp-Source: ALg8bN7bdNEmtOGIJPogojhv4DulOOkmx0p+KSde6mkobE68SN4IPZwI7cOGetTyWRmnwc2knLJp X-Received: by 2002:a17:902:7005:: with SMTP id y5mr28117105plk.7.1548803453751; Tue, 29 Jan 2019 15:10:53 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1548803453; cv=none; d=google.com; s=arc-20160816; b=dG3/bdr1Veq9G9VnBt22B/RN9FkvfcIudoqtQZIm8vX//NjNY+Sh3/3aFs4ROfldnL oprRqDCk5mGUAuvDYGWBkCEhFOh5b4CdxbMmUbMgo0VQaVZFeC4yldKAQqrS8TNW9ug1 lROg4SnUV7X9Ee1yFMm44sBZrNu+1g/xNDXlknYAEyD+UWXw/Zq2PwtWFZMepaoK3o2T QRuA9sZaAMUAqgu93oIWQ6VpeH8QhP/z9MTYc8OdcV2NlqOUbNup/VOwtB2VLyrhf8fC 7bHe5OgIU6ZENwfH59NyuER6KAk/CZ5a5JlV1bNSaHqtpv9y0tnPkNEpJ94aGZIOuOP1 cDiA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:from:subject:cc:to:message-id:date; bh=zKWYNGEATUnQd6wbgV9m5cOtuQyytqsLRRZrOz3BSmM=; b=YUqpf8ap+r8ofhyJd/1aYeWBkV+ewREFDIBdW9d4pxJ2A22F0T+qVwFkDR25Wk4F1e /3MInkOIWonh0kIgEi6c4RPPKI++ukn6a4IrW+X0zKLulXLKk1rCl74ACCJhafVcLsoE k1Da6HAYbXm0Ln0FdpeYuplRWHCjzJvpxQauIKBW9zp43ZGFk8x/qnZLLbYHSKjeu2VQ S4a4XyoIHdLM6yOzSt9E1JrLNjmkLKU3jTnzVWvPrd0drAIYqmjX0RMnEnWCpz6DAhkI Tmu3VFiJ59W0KCPtYb05dYACWWFa/ZOdE/xQooxpOksfwCU6uXpp6dutcRzv2BbidGKX 7w3Q== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id m63si39404577pld.132.2019.01.29.15.10.37; Tue, 29 Jan 2019 15:10:53 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729319AbfA2XK3 (ORCPT + 99 others); Tue, 29 Jan 2019 18:10:29 -0500 Received: from shards.monkeyblade.net ([23.128.96.9]:37190 "EHLO shards.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727006AbfA2XK3 (ORCPT ); Tue, 29 Jan 2019 18:10:29 -0500 Received: from localhost (unknown [IPv6:2601:601:9f80:35cd::bf5]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (Client did not present a certificate) (Authenticated sender: davem-davemloft) by shards.monkeyblade.net (Postfix) with ESMTPSA id D246514F19FB8; Tue, 29 Jan 2019 15:10:28 -0800 (PST) Date: Tue, 29 Jan 2019 15:10:26 -0800 (PST) Message-Id: <20190129.151026.358327408932275252.davem@davemloft.net> To: mst@redhat.com Cc: jasowang@redhat.com, stefanha@redhat.com, kvm@vger.kernel.org, virtualization@lists.linux-foundation.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH net] vhost: fix OOB in get_rx_bufs() From: David Miller In-Reply-To: <20190129175145-mutt-send-email-mst@kernel.org> References: <20190128070505.18335-1-jasowang@redhat.com> <20190128.225444.1929870241029842289.davem@davemloft.net> <20190129175145-mutt-send-email-mst@kernel.org> X-Mailer: Mew version 6.8 on Emacs 26.1 Mime-Version: 1.0 Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.5.12 (shards.monkeyblade.net [149.20.54.216]); Tue, 29 Jan 2019 15:10:29 -0800 (PST) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: "Michael S. Tsirkin" Date: Tue, 29 Jan 2019 17:54:44 -0500 > On Mon, Jan 28, 2019 at 10:54:44PM -0800, David Miller wrote: >> From: Jason Wang >> Date: Mon, 28 Jan 2019 15:05:05 +0800 >> >> > After batched used ring updating was introduced in commit e2b3b35eb989 >> > ("vhost_net: batch used ring update in rx"). We tend to batch heads in >> > vq->heads for more than one packet. But the quota passed to >> > get_rx_bufs() was not correctly limited, which can result a OOB write >> > in vq->heads. >> > >> > headcount = get_rx_bufs(vq, vq->heads + nvq->done_idx, >> > vhost_len, &in, vq_log, &log, >> > likely(mergeable) ? UIO_MAXIOV : 1); >> > >> > UIO_MAXIOV was still used which is wrong since we could have batched >> > used in vq->heads, this will cause OOB if the next buffer needs more >> > than 960 (1024 (UIO_MAXIOV) - 64 (VHOST_NET_BATCH)) heads after we've >> > batched 64 (VHOST_NET_BATCH) heads: >> ... >> > Fixing this by allocating UIO_MAXIOV + VHOST_NET_BATCH iovs for >> > vhost-net. This is done through set the limitation through >> > vhost_dev_init(), then set_owner can allocate the number of iov in a >> > per device manner. >> > >> > This fixes CVE-2018-16880. >> > >> > Fixes: e2b3b35eb989 ("vhost_net: batch used ring update in rx") >> > Signed-off-by: Jason Wang >> >> Applied and queued up for -stable, thanks! > > Wow it seems we are down to hours round time post to queue. > It would be hard to keep up that rate generally. > However, I am guessing this was already in downstreams, and it's a CVE, > so I guess it's a no brainer and review wasn't really necessary - was > that the idea? Just checking. Yeah the CVE pushed my hand a little bit, and I knew I was going to send Linus a pull request today because David Watson needs some TLS changes in net-next.