From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: Qasim Ijaz <qasdev00@gmail.com>
Cc: Johan Hovold <johan@kernel.org>,
linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH v2] usb: Fix null-ptr-deref in qt2_process_read_urb()
Date: Sun, 12 Jan 2025 14:08:40 +0100 [thread overview]
Message-ID: <2025011258-shelving-entwine-ef76@gregkh> (raw)
In-Reply-To: <Z4ORrl4sZBhPiu2p@qasdev.system>
On Sun, Jan 12, 2025 at 09:55:58AM +0000, Qasim Ijaz wrote:
> This patch addresses a null-ptr-deref in qt2_process_read_urb() due to
> an incorrect bounds check in the following:
>
> ""
> if (newport > serial->num_ports) {
> dev_err(&port->dev,
> "%s - port change to invalid port: %i\n",
> __func__, newport);
> break;
> }
> ""
>
> The condition doesn't account for the valid range of the serial->port
> buffer, which is from 0 to serial->num_ports - 1. When newport is equal
> to serial->num_ports, the assignment of "port" in the
> following code is out-of-bounds and NULL:
>
> ""
> serial_priv->current_port = newport;
> port = serial->port[serial_priv->current_port];
>
> ""
>
> The fix checks if newport is greater than or equal to serial->num_ports
> indicating it is out-of-bounds.
>
> Reported-by: syzbot <syzbot+506479ebf12fe435d01a@syzkaller.appspotmail.com>
> Closes: https://syzkaller.appspot.com/bug?extid=506479ebf12fe435d01a
Oh wow, syzbot is now starting to fuzz random USB devices? And this is
the only thing it found for this device? That's not all that bad, I
expected much worse.
> Signed-off-by: Qasim Ijaz <qasdev00@gmail.com>
> ---
> drivers/usb/serial/quatech2.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/usb/serial/quatech2.c b/drivers/usb/serial/quatech2.c
> index a317bdbd00ad..72fe83a6c978 100644
> --- a/drivers/usb/serial/quatech2.c
> +++ b/drivers/usb/serial/quatech2.c
> @@ -503,7 +503,7 @@ static void qt2_process_read_urb(struct urb *urb)
>
> newport = *(ch + 3);
>
> - if (newport > serial->num_ports) {
> + if (newport >= serial->num_ports) {
> dev_err(&port->dev,
> "%s - port change to invalid port: %i\n",
> __func__, newport);
Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
next prev parent reply other threads:[~2025-01-12 13:10 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-01-12 9:55 [PATCH v2] usb: Fix null-ptr-deref in qt2_process_read_urb() Qasim Ijaz
2025-01-12 13:08 ` Greg Kroah-Hartman [this message]
2025-01-13 9:00 ` Johan Hovold
-- strict thread matches above, loose matches on Subject: below --
2025-01-13 18:12 Qasim Ijaz
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=2025011258-shelving-entwine-ef76@gregkh \
--to=gregkh@linuxfoundation.org \
--cc=johan@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-usb@vger.kernel.org \
--cc=qasdev00@gmail.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.