From: sashiko-bot@kernel.org
To: "Stanley Jhu" <stanleyjhu@google.com>
Cc: linux-scsi@vger.kernel.org
Subject: Re: [PATCH v2 1/5] scsi: ufs: bsg: Complete the job on error
Date: Thu, 15 Oct 2026 00:32:09 +0000 [thread overview]
Message-ID: <sashiko-outbox-172057@kernel.org> (raw)
In-Reply-To: <20261015001855.3450573-2-stanleyjhu@google.com>
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [High] scsi: ufs: bsg: heap out-of-bounds write/read in RPMB reply
--
commit 500adcab38ae23977180188472414e7c66ab1588
Author: Stanley Jhu <stanleyjhu@google.com>
scsi: ufs: bsg: Complete the job on error
This patch updates ufs_bsg_request to always complete the job via
bsg_job_done() and return 0, matching other BSG transports. It prevents
leaking the job's device reference and mapped scatterlists on error.
Positive status codes continue to return 0 from SG_IO with the reply header.
Cc: stable@vger.kernel.org
> diff --git a/drivers/ufs/core/ufs_bsg.c b/drivers/ufs/core/ufs_bsg.c
> index 7a66917b3fc0e..18c318d781224 100644
> --- a/drivers/ufs/core/ufs_bsg.c
> +++ b/drivers/ufs/core/ufs_bsg.c
> @@ -195,14 +195,12 @@ static int ufs_bsg_request(struct bsg_job *job)
> ufshcd_rpm_put_sync(hba);
> kfree(buff);
> bsg_reply->result = ret;
> - /* complete the job here only if no error */
> - if (ret == 0) {
> + if (ret == 0)
> job->reply_len = rpmb ? sizeof(struct ufs_rpmb_reply) :
> sizeof(struct ufs_bsg_reply);
[Severity: High]
Does setting job->reply_len to sizeof(struct ufs_rpmb_reply) (which is 104
bytes) cause an out-of-bounds write and read?
The job->reply buffer is allocated with a fixed size of 96 bytes
(SCSI_SENSE_BUFFERSIZE) in bsg_init_rq().
During a UFS Advanced RPMB request, ufshcd_advanced_rpmb_req_handler() casts
the 96-byte job->reply buffer to a struct ufs_rpmb_reply and writes up to
104 bytes, overflowing the allocation by 8 bytes.
Later, bsg_complete_op() uses job->reply_len to copy the reply back to
userspace:
block/bsg-lib.c:bsg_complete_op() {
...
int len = min(hdr->max_response_len, job->reply_len);
if (copy_to_user(uptr64(hdr->response), job->reply, len))
...
}
Because job->reply_len is set to 104, this copies 8 bytes of adjacent
slab memory to userspace, which could lead to heap corruption and
memory disclosure.
> - bsg_job_done(job, ret, bsg_reply->reply_payload_rcv_len);
> - }
> + bsg_job_done(job, ret, bsg_reply->reply_payload_rcv_len);
>
> - return ret;
> + return 0;
> }
--
Sashiko AI review · https://sashiko.dev/#/patchset/20261015001855.3450573-1-stanleyjhu@google.com?part=1
next prev parent reply other threads:[~2026-10-15 0:32 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-15 0:18 [PATCH v2 0/5] scsi: ufs: Fix UIC result byte and BSG request handling Stanley Jhu
2026-10-15 0:18 ` [PATCH v2 1/5] scsi: ufs: bsg: Complete the job on error Stanley Jhu
2026-10-15 0:32 ` sashiko-bot [this message]
2026-10-15 0:41 ` Stanley Jhu
2026-10-15 0:18 ` [PATCH v2 2/5] scsi: ufs: bsg: Clear the reply buffer before use Stanley Jhu
2026-10-15 0:34 ` sashiko-bot
2026-10-15 0:41 ` Stanley Jhu
2026-10-15 0:18 ` [PATCH v2 3/5] scsi: ufs: bsg: Validate request_len before accessing request Stanley Jhu
2026-10-15 0:18 ` [PATCH v2 4/5] scsi: ufs: bsg: Reject UIC commands with a non-zero result byte Stanley Jhu
2026-10-15 0:18 ` [PATCH v2 5/5] scsi: ufs: core: Clear stale UIC result byte before peer DME retries Stanley Jhu
2026-10-15 0:32 ` sashiko-bot
2026-10-15 0:43 ` Stanley Jhu
2026-10-15 4:39 ` [PATCH v2 0/5] scsi: ufs: Fix UIC result byte and BSG request handling Peter Wang
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=sashiko-outbox-172057@kernel.org \
--to=sashiko-bot@kernel.org \
--cc=linux-scsi@vger.kernel.org \
--cc=sashiko-reviews@lists.linux.dev \
--cc=stanleyjhu@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.