From: Greg KH <gregkh@linuxfoundation.org>
To: syedlabeeq <syedlabeeq@gmail.com>
Cc: linux-usb@vger.kernel.org, usb-storage@lists.one-eyed-alien.net,
stern@rowland.harvard.edu, stable@vger.kernel.org
Subject: Re: [PATCH RESEND] usb: storage: sierra_ms: reject short SWoC info transfers
Date: Thu, 10 Sep 2026 15:40:23 +0200 [thread overview]
Message-ID: <2026091052-refueling-bulk-afc5@gregkh> (raw)
In-Reply-To: <20260910123129.16793-1-syedlabeeq@gmail.com>
On Thu, Sep 10, 2026 at 05:31:28PM +0500, syedlabeeq wrote:
> From: Syed Labeeq Sajid Bukhari <syedlabeeq@gmail.com>
>
> sierra_get_swoc_info() requests sizeof(struct swoc_info) (60) bytes
> from the device via usb_control_msg(), but its callers only treat a
> negative return value as failure. A device that answers the
> vendor-specific GetSwocInfo request with a short IN transfer is
> therefore accepted, leaving the tail of the freshly allocated
> (kmalloc(), non-zeroing) swoc_info buffer uninitialized.
>
> truinst_show() subsequently prints swocInfo->rev, swocInfo->LinuxSKU
> and swocInfo->LinuxVer from that buffer into the world-readable
> (0444) "truinst" sysfs attribute. An emulated/malicious USB device
> (VID 0x1199, PID 0x0fff) can exploit this to disclose up to 5 bytes
> of stale kernel heap memory (kmalloc-64) to unprivileged userspace,
> once per sysfs read, indefinitely. On kernels built without
> init_on_alloc this leaks recently freed heap contents.
>
> Only accept the transfer when the full structure was received.
> sierra_ms_init() already retries failed queries, so well-behaved
> devices are unaffected.
>
> Fixes: 32fe5e393455 ("USB Storage Sierra: TRU-Install feature update")
> Cc: stable@vger.kernel.org
> Signed-off-by: Syed Labeeq Sajid Bukhari <syedlabeeq@gmail.com>
> ---
> Resend: the first posting was whitespace-mangled by a webmail client;
> no code changes.
> drivers/usb/storage/sierra_ms.c | 6 ++++++
> 1 file changed, 6 insertions(+)
>
> diff --git a/drivers/usb/storage/sierra_ms.c b/drivers/usb/storage/sierra_ms.c
> index 177fa6cd143ab2837640c26f8336781ddd3cf9cb..8755fda42eed2afd3235283e990a35aac14cb829 100644
> --- a/drivers/usb/storage/sierra_ms.c
> +++ b/drivers/usb/storage/sierra_ms.c
> @@ -76,6 +76,12 @@
> (void *) swocInfo, /* void *data */
> sizeof(struct swoc_info), /* __u16 size */
> USB_CTRL_SET_TIMEOUT); /* int timeout */
> + /*
> + * A short IN transfer leaves the tail of swocInfo uninitialized;
> + * only a full transfer is valid.
> + */
> + if (result != sizeof(struct swoc_info))
> + return -EIO;
Don't you need a blank line before this comment?
And did you forget an Assisted-by: tag?
thanks,
greg k-h
next prev parent reply other threads:[~2026-09-10 13:40 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-10 12:31 [PATCH RESEND] usb: storage: sierra_ms: reject short SWoC info transfers syedlabeeq
2026-09-10 13:40 ` Greg KH [this message]
2026-09-10 14:05 ` Syed Labeeq Sajid Bukhari
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=2026091052-refueling-bulk-afc5@gregkh \
--to=gregkh@linuxfoundation.org \
--cc=linux-usb@vger.kernel.org \
--cc=stable@vger.kernel.org \
--cc=stern@rowland.harvard.edu \
--cc=syedlabeeq@gmail.com \
--cc=usb-storage@lists.one-eyed-alien.net \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox