From: Purva Yeshi <purvayeshi550@gmail.com>
To: Kuniyuki Iwashima <kuniyu@amazon.com>
Cc: andrew+netdev@lunn.ch, davem@davemloft.net, edumazet@google.com,
kuba@kernel.org, linux-kernel@vger.kernel.org,
linux-ppp@vger.kernel.org, netdev@vger.kernel.org,
pabeni@redhat.com, skhan@linuxfoundation.org,
syzbot+29fc8991b0ecb186cf40@syzkaller.appspotmail.com
Subject: Re: [PATCH] ppp: Prevent out-of-bounds access in ppp_sync_txmunge
Date: Tue, 18 Feb 2025 11:58:17 +0530 [thread overview]
Message-ID: <1e906059-83c7-4f29-a026-76cd73d8b6fa@gmail.com> (raw)
In-Reply-To: <20250217211609.60862-1-kuniyu@amazon.com>
On 18/02/25 02:46, Kuniyuki Iwashima wrote:
> From: Purva Yeshi <purvayeshi550@gmail.com>
> Date: Sun, 16 Feb 2025 11:34:46 +0530
>> Fix an issue detected by syzbot with KMSAN:
>>
>> BUG: KMSAN: uninit-value in ppp_sync_txmunge
>> drivers/net/ppp/ppp_synctty.c:516 [inline]
>> BUG: KMSAN: uninit-value in ppp_sync_send+0x21c/0xb00
>> drivers/net/ppp/ppp_synctty.c:568
>>
>> Ensure sk_buff is valid and has at least 3 bytes before accessing its
>> data field in ppp_sync_txmunge(). Without this check, the function may
>> attempt to read uninitialized or invalid memory, leading to undefined
>> behavior.
>>
>> To address this, add a validation check at the beginning of the function
>> to safely handle cases where skb is NULL or too small. If either condition
>> is met, free the skb and return NULL to prevent processing an invalid
>> packet.
>>
>> Reported-by: syzbot+29fc8991b0ecb186cf40@syzkaller.appspotmail.com
>> Closes: https://syzkaller.appspot.com/bug?extid=29fc8991b0ecb186cf40
>> Tested-by: syzbot+29fc8991b0ecb186cf40@syzkaller.appspotmail.com
>> Signed-off-by: Purva Yeshi <purvayeshi550@gmail.com>
>> ---
>> drivers/net/ppp/ppp_synctty.c | 6 ++++++
>> 1 file changed, 6 insertions(+)
>>
>> diff --git a/drivers/net/ppp/ppp_synctty.c b/drivers/net/ppp/ppp_synctty.c
>> index 644e99fc3..e537ea3d9 100644
>> --- a/drivers/net/ppp/ppp_synctty.c
>> +++ b/drivers/net/ppp/ppp_synctty.c
>> @@ -506,6 +506,12 @@ ppp_sync_txmunge(struct syncppp *ap, struct sk_buff *skb)
>> unsigned char *data;
>> int islcp;
>>
>> + /* Ensure skb is not NULL and has at least 3 bytes */
>> + if (!skb || skb->len < 3) {
>
> When is skb NULL ?
skb pointer can be NULL in cases where memory allocation for the socket
buffer fails, or if an upstream function incorrectly passes a NULL
reference due to improper error handling.
Additionally, skb->len being less than 3 can occur if the received
packet is truncated or malformed, leading to out-of-bounds memory access
when attempting to read data[2].
>
>
>> + kfree_skb(skb);
>> + return NULL;
>> + }
>> +
>> data = skb->data;
>> proto = get_unaligned_be16(data);
>>
>> --
>> 2.34.1
next prev parent reply other threads:[~2025-02-18 6:28 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-02-16 6:04 [PATCH] ppp: Prevent out-of-bounds access in ppp_sync_txmunge Purva Yeshi
2025-02-17 21:16 ` Kuniyuki Iwashima
2025-02-18 6:28 ` Purva Yeshi [this message]
2025-02-18 18:50 ` Kuniyuki Iwashima
2025-02-25 6:20 ` Purva Yeshi
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=1e906059-83c7-4f29-a026-76cd73d8b6fa@gmail.com \
--to=purvayeshi550@gmail.com \
--cc=andrew+netdev@lunn.ch \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=kuba@kernel.org \
--cc=kuniyu@amazon.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-ppp@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=skhan@linuxfoundation.org \
--cc=syzbot+29fc8991b0ecb186cf40@syzkaller.appspotmail.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.