CVE-2026-99157
Full vulnerability record from the local CVENow database.
Description
In the Linux kernel, the following vulnerability has been resolved: scsi: bsg: Pass reply_len to bsg_setup_queue() to fit UFS ARPMB replies bsg-lib allocates a 96-byte (SCSI_SENSE_BUFFERSIZE) reply buffer per job, but struct ufs_rpmb_reply is 104 bytes: a 40-byte struct ufs_bsg_reply followed by a 64-byte EHS. When an Advanced RPMB command returns an EHS, ufshcd_advanced_rpmb_req_handler() copies it right after the 40-byte header and writes 8 bytes past the end of the buffer. Let each BSG transport pass its reply buffer size to bsg_setup_queue() and have ufs_bsg request sizeof(struct ufs_rpmb_reply), so the full reply reaches user space. Other transports keep SCSI_SENSE_BUFFERSIZE.
View original CVE JSON
{
"id": "CVE-2026-99157",
"sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"published": "2026-10-28T11:17:35.933",
"lastModified": "2026-10-28T11:17:35.933",
"vulnStatus": "Received",
"cveTags": [],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nscsi: bsg: Pass reply_len to bsg_setup_queue() to fit UFS ARPMB replies\n\nbsg-lib allocates a 96-byte (SCSI_SENSE_BUFFERSIZE) reply buffer per\njob, but struct ufs_rpmb_reply is 104 bytes: a 40-byte struct\nufs_bsg_reply followed by a 64-byte EHS. When an Advanced RPMB command\nreturns an EHS, ufshcd_advanced_rpmb_req_handler() copies it right after\nthe 40-byte header and writes 8 bytes past the end of the buffer.\n\nLet each BSG transport pass its reply buffer size to bsg_setup_queue()\nand have ufs_bsg request sizeof(struct ufs_rpmb_reply), so the full\nreply reaches user space. Other transports keep SCSI_SENSE_BUFFERSIZE."
}
],
"affected": [
{
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"affectedData": [
{
"vendor": "Linux",
"product": "Linux",
"defaultStatus": "unaffected",
"programFiles": [
"block/bsg-lib.c",
"drivers/scsi/mpi3mr/mpi3mr_app.c",
"drivers/scsi/scsi_transport_fc.c",
"drivers/scsi/scsi_transport_iscsi.c",
"drivers/scsi/scsi_transport_sas.c",
"drivers/ufs/core/ufs_bsg.c",
"include/linux/bsg-lib.h"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"versions": [
{
"version": "6ff265fc5ef660499e0edc4641647e99eed3f519",
"lessThan": "2effbe746452c108188f85a6951f2b0b65653840",
"versionType": "git",
"status": "affected"
},
{
"version": "6ff265fc5ef660499e0edc4641647e99eed3f519",
"lessThan": "7a755f6d47b811d3abd93c1642ce5e63894540b8",
"versionType": "git",
"status": "affected"
},
{
"version": "6ff265fc5ef660499e0edc4641647e99eed3f519",
"lessThan": "ec6b083915e8146e147314a5f4f1285d07b57bfc",
"versionType": "git",
"status": "affected"
}
]
},
{
"vendor": "Linux",
"product": "Linux",
"defaultStatus": "affected",
"programFiles": [
"block/bsg-lib.c",
"drivers/scsi/mpi3mr/mpi3mr_app.c",
"drivers/scsi/scsi_transport_fc.c",
"drivers/scsi/scsi_transport_iscsi.c",
"drivers/scsi/scsi_transport_sas.c",
"drivers/ufs/core/ufs_bsg.c",
"include/linux/bsg-lib.h"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"versions": [
{
"version": "6.3",
"status": "affected"
},
{
"version": "0",
"lessThan": "6.3",
"versionType": "semver",
"status": "unaffected"
},
{
"version": "6.18.59",
"lessThanOrEqual": "6.18.*",
"versionType": "semver",
"status": "unaffected"
},
{
"version": "7.2.13",
"lessThanOrEqual": "7.2.*",
"versionType": "semver",
"status": "unaffected"
},
{
"version": "7.3",
"lessThanOrEqual": "*",
"versionType": "original_commit_for_fix",
"status": "unaffected"
}
]
}
]
}
],
"metrics": {},
"references": [
{
"url": "https://git.kernel.org/stable/c/2effbe746452c108188f85a6951f2b0b65653840",
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
},
{
"url": "https://git.kernel.org/stable/c/7a755f6d47b811d3abd93c1642ce5e63894540b8",
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
},
{
"url": "https://git.kernel.org/stable/c/ec6b083915e8146e147314a5f4f1285d07b57bfc",
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
}
]
}