All of lore.kernel.org
 help / color / mirror / Atom feed
From: Kuniyuki Iwashima <kuniyu@google.com>
To: Avi Weiss <thnkslprpt@gmail.com>
Cc: netdev@vger.kernel.org, edumazet@kernel.org, pabeni@redhat.com,
	 willemb@google.com, davem@davemloft.net, kuba@kernel.org,
	horms@kernel.org,  linux-kernel@vger.kernel.org
Subject: Re: [PATCH net 1/2] net: check the sendmsg LSM hook for every batched message
Date: Sun, 1 Nov 2026 15:38:45 +0000	[thread overview]
Message-ID: <audZ1egS6dmi9ZfE@google.com> (raw)
In-Reply-To: <0b1a91e7fa0de128c6e2bd3ae2f5c960a5c0f883.1793444262.git.thnkslprpt@gmail.com>

On Sat, 31 Oct 2026 13:08:40 +0200, Avi Weiss wrote:
> sendmmsg() skips security_socket_sendmsg() when two consecutive
> messages have the same explicit destination address. The comparison
> does not account for the message size, so a BPF LSM policy that denies
> large sends can be bypassed by placing an allowed message first.

What is the real use case ?

or is this something just flagged by AI ?


> 
> Use __sock_sendmsg() for the cached-destination case as well, so that
> every message undergoes the LSM check. Keep the remainder of the
> address-caching logic unchanged in this minimal correction.
> 
> Fixes: 228e548e6020 ("net: Add sendmmsg socket system call")

This is net-next material.


> Signed-off-by: Avi Weiss <thnkslprpt@gmail.com>
> ---
>  net/socket.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/net/socket.c b/net/socket.c
> index 2e3b5737c481..c2a85224ab55 100644
> --- a/net/socket.c
> +++ b/net/socket.c
> @@ -2709,7 +2709,7 @@ static int ____sys_sendmsg(struct socket *sock, struct msghdr *msg_sys,

 	/*
 	 * If this is sendmmsg() and current destination address is same as
 	 * previously succeeded address, omit asking LSM's decision.
 	 * used_address->name_len is initialized to UINT_MAX so that the first
 	 * destination address never matches.
 	 */

The comment here is stale.

 	if (used_address && msg_sys->msg_name &&

>  	    used_address->name_len == msg_sys->msg_namelen &&
>  	    !memcmp(&used_address->name, msg_sys->msg_name,
>  		    used_address->name_len)) {

Also, used_address, etc is no longer needed.


> -		err = sock_sendmsg_nosec(sock, msg_sys);
> +		err = __sock_sendmsg(sock, msg_sys);
>  		goto out_freectl;
>  	}
>  	err = __sock_sendmsg(sock, msg_sys);
> -- 
> 2.43.0
> 

  parent reply	other threads:[~2026-11-01 15:38 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-10-31 11:08 [PATCH net 1/2] net: check the sendmsg LSM hook for every batched message Avi Weiss
2026-10-31 11:08 ` [PATCH net 2/2] net: check the recvmsg LSM hook for every recvmmsg entry Avi Weiss
2026-11-01 15:42   ` Kuniyuki Iwashima
2026-11-01 15:38 ` Kuniyuki Iwashima [this message]
  -- strict thread matches above, loose matches on Subject: below --
2026-10-31 11:13 [PATCH net 1/2] net: check the sendmsg LSM hook for every batched message netdev-bot+sinfo

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=audZ1egS6dmi9ZfE@google.com \
    --to=kuniyu@google.com \
    --cc=davem@davemloft.net \
    --cc=edumazet@kernel.org \
    --cc=horms@kernel.org \
    --cc=kuba@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.com \
    --cc=thnkslprpt@gmail.com \
    --cc=willemb@google.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.