Received: by 2002:a05:6a10:206:0:0:0:0 with SMTP id 6csp3926290pxj; Mon, 21 Jun 2021 09:31:27 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzeNjzSq82hS6QLaAAxj5Ke2XiX+W8GsieMcd61bA8vNOjtnNd49mFyXvaHo/EKWzPKqChT X-Received: by 2002:a05:6e02:784:: with SMTP id q4mr18533216ils.82.1624293087446; Mon, 21 Jun 2021 09:31:27 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1624293087; cv=none; d=google.com; s=arc-20160816; b=XusQHuwYnyO5vlsqODsNDsCNm5Kjp82gZ6EQMTRsnZHDMfussRX8GePJ+qTO0UDA31 8iBVUmPRhj+I692JjrQR6l5DHcEHJ36FPF9LxbkQP3gSgj1J1yqYIQPTitEtdRkfvr20 3VGVcboKcihTa4ohFhXwUMCKOFYOzD8+PW9y4HHNOZR20xtT2AFxWxDqIWSaz6lJwjI3 RXwG2MSyzSBSSmJAApbBYnFK335lzTUg2QnZ6vAXg7GsAnuxvuf1PM5fPUaSUyeSARSz NbLeQU3aV/kzbbh+RyOao9jreHH4ke9kP9luGJWZOweNUPbvhwHEch/3Zf8BONf518bE Aj6g== 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=GN0owGNMLq6pB3XUEdmvFce5wkVGssYtgbbKx8Jyu+s=; b=vdmVrsqW/FLNQBNaHRAj5mCeQOSUPxoxB3SXqN5bmn1Ir1PD0DGoMA3C+ALTwR7CJX QfYMJ3eyzNSV/DaTUJ4DlUQwei8a2+JhGVKODnGyI2jYXcWCsVpfmJSsyo4xlO/TaWf8 QS0EHVQoC6KYqlE/yBuhxWsrwYkg2YJBdHqetrwh4AkkM2cAtqFapkSonzHsqRkGyxU5 X+gf0UEB+TcBNCUqQC6X9M0gAJ47jkDRPlOQB8ZfDuVOceSOR79pPlUik26+OLBrVurj HwzLDms+VNYtLWkWtFkVNtD8FDaz/jdNcCw/mIPNKqXyNlS5t9eNt9axgtowch2MfzSD Z0cw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=fbazu44V; 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 b40si12161218jav.35.2021.06.21.09.30.50; Mon, 21 Jun 2021 09:31:27 -0700 (PDT) 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=fbazu44V; 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 S232438AbhFUQbc (ORCPT + 99 others); Mon, 21 Jun 2021 12:31:32 -0400 Received: from mail.kernel.org ([198.145.29.99]:48950 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232418AbhFUQ3X (ORCPT ); Mon, 21 Jun 2021 12:29:23 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 10AE7613ED; Mon, 21 Jun 2021 16:24:14 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1624292655; bh=RzXCk9Dio8zmt6KXri5/MKKeCrYmJTpNj3bvQToYVFg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=fbazu44VtJtwHhjl5FQ0dNAgmZW/Fz12258PdTNWpUo4U1WbUM+RbVRIbnzgtnjgq ty0KxMKTh7QOQxRGRvccKhHwTstOZChmDIYHq9ZX2VHJLcWeOIo2wp0jmgO7/IrFY8 98GN/lSvajXnYt5FxPh5Thrt9foN2REdYfR0YLV0= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, syzbot+59aa77b92d06cd5a54f2@syzkaller.appspotmail.com, Jakub Kicinski , "David S. Miller" , Sasha Levin Subject: [PATCH 5.10 048/146] ethtool: strset: fix message length calculation Date: Mon, 21 Jun 2021 18:14:38 +0200 Message-Id: <20210621154912.922708811@linuxfoundation.org> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210621154911.244649123@linuxfoundation.org> References: <20210621154911.244649123@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: Jakub Kicinski [ Upstream commit e175aef902697826d344ce3a12189329848fe898 ] Outer nest for ETHTOOL_A_STRSET_STRINGSETS is not accounted for. This may result in ETHTOOL_MSG_STRSET_GET producing a warning like: calculated message payload length (684) not sufficient WARNING: CPU: 0 PID: 30967 at net/ethtool/netlink.c:369 ethnl_default_doit+0x87a/0xa20 and a splat. As usually with such warnings three conditions must be met for the warning to trigger: - there must be no skb size rounding up (e.g. reply_size of 684); - string set must be per-device (so that the header gets populated); - the device name must be at least 12 characters long. all in all with current user space it looks like reading priv flags is the only place this could potentially happen. Or with syzbot :) Reported-by: syzbot+59aa77b92d06cd5a54f2@syzkaller.appspotmail.com Fixes: 71921690f974 ("ethtool: provide string sets with STRSET_GET request") Signed-off-by: Jakub Kicinski Signed-off-by: David S. Miller Signed-off-by: Sasha Levin --- net/ethtool/strset.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/net/ethtool/strset.c b/net/ethtool/strset.c index c3a5489964cd..9908b922cce8 100644 --- a/net/ethtool/strset.c +++ b/net/ethtool/strset.c @@ -328,6 +328,8 @@ static int strset_reply_size(const struct ethnl_req_info *req_base, int len = 0; int ret; + len += nla_total_size(0); /* ETHTOOL_A_STRSET_STRINGSETS */ + for (i = 0; i < ETH_SS_COUNT; i++) { const struct strset_info *set_info = &data->sets[i]; -- 2.30.2