[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <f1c1cee8-4e21-41c3-886a-5ce5fbcaa426@gmail.com>
Date: Thu, 14 Aug 2025 13:12:40 -0400
From: Daniel Zahka <daniel.zahka@...il.com>
To: Paolo Abeni <pabeni@...hat.com>, Donald Hunter <donald.hunter@...il.com>,
Jakub Kicinski <kuba@...nel.org>, "David S. Miller" <davem@...emloft.net>,
Eric Dumazet <edumazet@...gle.com>, Simon Horman <horms@...nel.org>,
Jonathan Corbet <corbet@....net>, Andrew Lunn <andrew+netdev@...n.ch>
Cc: Saeed Mahameed <saeedm@...dia.com>, Leon Romanovsky <leon@...nel.org>,
Tariq Toukan <tariqt@...dia.com>, Boris Pismenny <borisp@...dia.com>,
Kuniyuki Iwashima <kuniyu@...gle.com>, Willem de Bruijn
<willemb@...gle.com>, David Ahern <dsahern@...nel.org>,
Neal Cardwell <ncardwell@...gle.com>, Patrisious Haddad
<phaddad@...dia.com>, Raed Salem <raeds@...dia.com>,
Jianbo Liu <jianbol@...dia.com>, Dragos Tatulea <dtatulea@...dia.com>,
Rahul Rameshbabu <rrameshbabu@...dia.com>,
Stanislav Fomichev <sdf@...ichev.me>,
Toke Høiland-Jørgensen <toke@...hat.com>,
Alexander Lobakin <aleksander.lobakin@...el.com>,
Kiran Kella <kiran.kella@...adcom.com>,
Jacob Keller <jacob.e.keller@...el.com>, netdev@...r.kernel.org
Subject: Re: [PATCH net-next v6 09/19] net: psp: update the TCP MSS to reflect
PSP packet overhead
On 8/14/25 12:38 PM, Paolo Abeni wrote:
> On 8/14/25 4:50 PM, Daniel Zahka wrote:
>> On 8/14/25 9:58 AM, Paolo Abeni wrote:
>>> On 8/12/25 2:29 AM, Daniel Zahka wrote:
>>>> @@ -236,6 +237,10 @@ int psp_sock_assoc_set_tx(struct sock *sk, struct psp_dev *psd,
>>>> tcp_write_collapse_fence(sk);
>>>> pas->upgrade_seq = tcp_sk(sk)->rcv_nxt;
>>>>
>>>> + icsk = inet_csk(sk);
>>>> + icsk->icsk_ext_hdr_len += psp_sk_overhead(sk);
>>> I'm likely lost, but AFAICS the user-space can successfully call
>>> multiple times psp_sock_assoc_set_tx() on the same socket, increasing
>>> icsk->icsk_ext_hdr_len in an unbounded way.
>> If it were possible to execute the code you have highlighted more than
>> once per socket, that would be a bug. This should not be possible
>> because of the preceding checks in the function i.e.
>>
>> if (pas->tx.spi) {
>> NL_SET_ERR_MSG(extack, "Tx key already set");
>> err = -EBUSY;
>> goto exit_unlock;
>> }
> AFAICS the nl code ensures the SPI attribute must be present, but also
> allows a 0 value, so the above check could be eluded.
I think you are right that we need some extra validation for the SPI.
The PSP spec states that 0 is a reserved value for SPI, and our
implementation does indeed depend on that here.
Powered by blists - more mailing lists