All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jiri Pirko <jiri@resnulli.us>
To: Wenbo Sun <sunwenbo@cmss.chinamobile.com>
Cc: Andrew Lunn <andrew+netdev@lunn.ch>,
	 "David S . Miller" <davem@davemloft.net>,
	Eric Dumazet <edumazet@kernel.org>,
	 Jakub Kicinski <kuba@kernel.org>,
	Paolo Abeni <pabeni@redhat.com>,
	 Hangbin Liu <hangbin.liu@linux.dev>,
	netdev@vger.kernel.org, linux-kernel@vger.kernel.org,
	 1342116488@qq.com
Subject: Re: [PATCH net v3] team: validate the length of U32 and S32 option data
Date: Fri, 13 Nov 2026 11:52:03 +0100	[thread overview]
Message-ID: <avbrzVvksHvTF89W@FV6GYCPJ69> (raw)
In-Reply-To: <20261113090108.175889-1-sunwenbo@cmss.chinamobile.com>

Fri, Nov 13, 2026 at 10:01:08AM +0100, sunwenbo@cmss.chinamobile.com wrote:
>In team_nl_options_set_doit(), the policy for TEAM_ATTR_OPTION_DATA in
>team_attr_option_nl_policy is NLA_BINARY because the payload layout
>varies with the option type.
>
>For TEAM_OPTION_TYPE_U32 and TEAM_OPTION_TYPE_S32, the payload is
>read directly with nla_get_u32(attr_data) and nla_get_s32(attr_data)
>without checking its attribute length. When userspace supplies a
>truncated attribute (0 to 3 bytes), nla_get_u32() or nla_get_s32()
>performs an out-of-bounds read past the attribute buffer. Conversely,
>oversized payloads (> 4 bytes) would also have trailing bytes
>silently ignored instead of being rejected as invalid input.
>
>Validate that nla_len(attr_data) equals sizeof(u32) or sizeof(s32)
>for TEAM_OPTION_TYPE_U32 and TEAM_OPTION_TYPE_S32 respectively, and
>return -EINVAL otherwise, consistent with how NLA_U32/NLA_S32
>attributes are validated and similar to commit 5bef3ac184b5 ("team:
>better TEAM_OPTION_TYPE_STRING validation").
>
>This issue was identified with the assistance of an LLM-based code
>review of Netlink option handlers in the team driver, confirmed by
>sending malformed U32 (notify_peers_count) and S32 (priority) option
>attributes on a UML kernel, and verified after the patch that
>invalid lengths (0..3, 5, and 8 bytes) are rejected with -EINVAL while
>valid 4-byte options still work as expected.
>
>Built with W=1 on UML, x86_64 allmodconfig, and x86_64 allyesconfig with
>zero new warnings or errors.
>
>Fixes: 3d249d4ca7d0 ("net: introduce ethernet teaming device")
>Fixes: 69821638b274 ("team: add signed 32-bit team option type")
>Signed-off-by: Wenbo Sun <sunwenbo@cmss.chinamobile.com>

Reviewed-by: Jiri Pirko <jiri@nvidia.com>

      reply	other threads:[~2026-11-13 10:52 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-11-13  9:01 [PATCH net v3] team: validate the length of U32 and S32 option data Wenbo Sun
2026-11-13 10:52 ` Jiri Pirko [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=avbrzVvksHvTF89W@FV6GYCPJ69 \
    --to=jiri@resnulli.us \
    --cc=1342116488@qq.com \
    --cc=andrew+netdev@lunn.ch \
    --cc=davem@davemloft.net \
    --cc=edumazet@kernel.org \
    --cc=hangbin.liu@linux.dev \
    --cc=kuba@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.com \
    --cc=sunwenbo@cmss.chinamobile.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.