CVE-2023-53376 (GCVE-0-2023-53376)
Vulnerability from cvelistv5
Published
2025-09-18 13:33
Modified
2026-08-05 09:13
Summary
In the Linux kernel, the following vulnerability has been resolved: scsi: mpi3mr: Use number of bits to manage bitmap sizes To allocate bitmaps, the mpi3mr driver calculates sizes of bitmaps using byte as unit. However, bitmap helper functions assume that bitmaps are allocated using unsigned long as unit. This gap causes memory access beyond the bitmap sizes and results in "BUG: KASAN: slab-out-of-bounds". The BUG was observed at firmware download to eHBA-9600. Call trace indicated that the out-of-bounds access happened in find_first_zero_bit() called from mpi3mr_send_event_ack() for miroc->evtack_cmds_bitmap. To fix the BUG, do not use bytes to manage bitmap sizes. Instead, use number of bits, and call bitmap helper functions which take number of bits as arguments. For memory allocation, call bitmap_zalloc() instead of kzalloc() and krealloc(). For memory free, call bitmap_free() instead of kfree(). For zero clear, call bitmap_clear() instead of memset(). Remove three fields for bitmap byte sizes in struct scmd_priv which are no longer required. Replace the field dev_handle_bitmap_sz with dev_handle_bitmap_bits to keep number of bits of removepend_bitmap across resize.
Impacted products
Vendor Product Version
Linux Linux Version: 824a156633dfdb0e17979a0d0bb2c757d1bb949c
Version: 824a156633dfdb0e17979a0d0bb2c757d1bb949c
Version: 824a156633dfdb0e17979a0d0bb2c757d1bb949c
Create a notification for this product.
Show details on NVD website


{
  "containers": {
    "adp": [
      {
        "metrics": [
          {
            "cvssV3_1": {
              "attackComplexity": "LOW",
              "attackVector": "LOCAL",
              "availabilityImpact": "HIGH",
              "baseScore": 7.1,
              "baseSeverity": "HIGH",
              "confidentialityImpact": "HIGH",
              "integrityImpact": "NONE",
              "privilegesRequired": "LOW",
              "scope": "UNCHANGED",
              "userInteraction": "NONE",
              "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H",
              "version": "3.1"
            }
          },
          {
            "other": {
              "content": {
                "id": "CVE-2023-53376",
                "options": [
                  {
                    "Exploitation": "none"
                  },
                  {
                    "Automatable": "no"
                  },
                  {
                    "Technical Impact": "partial"
                  }
                ],
                "role": "CISA Coordinator",
                "timestamp": "2026-01-14T18:54:58.227496Z",
                "version": "2.0.3"
              },
              "type": "ssvc"
            }
          }
        ],
        "problemTypes": [
          {
            "descriptions": [
              {
                "cweId": "CWE-125",
                "description": "CWE-125 Out-of-bounds Read",
                "lang": "en",
                "type": "CWE"
              }
            ]
          }
        ],
        "providerMetadata": {
          "dateUpdated": "2026-01-14T19:03:03.599Z",
          "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
          "shortName": "CISA-ADP"
        },
        "title": "CISA ADP Vulnrichment"
      }
    ],
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "drivers/scsi/mpi3mr/mpi3mr.h",
            "drivers/scsi/mpi3mr/mpi3mr_fw.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "6a675a6d57d31da43d8da576465c1cd5d5b0bd3d",
              "status": "affected",
              "version": "824a156633dfdb0e17979a0d0bb2c757d1bb949c",
              "versionType": "git"
            },
            {
              "lessThan": "8ac713d2e9845e9234bb12ae5903040685d5aff9",
              "status": "affected",
              "version": "824a156633dfdb0e17979a0d0bb2c757d1bb949c",
              "versionType": "git"
            },
            {
              "lessThan": "339e61565f81a6534afdc18fd854b2e2628bf5db",
              "status": "affected",
              "version": "824a156633dfdb0e17979a0d0bb2c757d1bb949c",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "drivers/scsi/mpi3mr/mpi3mr.h",
            "drivers/scsi/mpi3mr/mpi3mr_fw.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "5.14"
            },
            {
              "lessThan": "5.14",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.1.*",
              "status": "unaffected",
              "version": "6.1.18",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.2.*",
              "status": "unaffected",
              "version": "6.2.5",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "6.3",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.1.18",
                  "versionStartIncluding": "5.14",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.2.5",
                  "versionStartIncluding": "5.14",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.3",
                  "versionStartIncluding": "5.14",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nscsi: mpi3mr: Use number of bits to manage bitmap sizes\n\nTo allocate bitmaps, the mpi3mr driver calculates sizes of bitmaps using\nbyte as unit. However, bitmap helper functions assume that bitmaps are\nallocated using unsigned long as unit. This gap causes memory access beyond\nthe bitmap sizes and results in \"BUG: KASAN: slab-out-of-bounds\".  The BUG\nwas observed at firmware download to eHBA-9600. Call trace indicated that\nthe out-of-bounds access happened in find_first_zero_bit() called from\nmpi3mr_send_event_ack() for miroc-\u003eevtack_cmds_bitmap.\n\nTo fix the BUG, do not use bytes to manage bitmap sizes. Instead, use\nnumber of bits, and call bitmap helper functions which take number of bits\nas arguments. For memory allocation, call bitmap_zalloc() instead of\nkzalloc() and krealloc(). For memory free, call bitmap_free() instead of\nkfree(). For zero clear, call bitmap_clear() instead of memset().\n\nRemove three fields for bitmap byte sizes in struct scmd_priv which are no\nlonger required. Replace the field dev_handle_bitmap_sz with\ndev_handle_bitmap_bits to keep number of bits of removepend_bitmap across\nresize."
        }
      ],
      "metrics": [
        {
          "cvssV3_1": {
            "baseScore": 7.8,
            "baseSeverity": "HIGH",
            "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
            "version": "3.1"
          },
          "scenarios": [
            {
              "lang": "en",
              "value": "AV:L - The bug is in the Broadcom mpi3mr SCSI HBA driver (bitmap helpers on undersized chain/evtack/devrem/removepend bitmaps), reachable only via local I/O, firmware-event handling, or BSG management on a system with that PCI HBA; there is no network or adjacent-network path.\nAC:L - Allocation uses byte-rounded sizes while find_first_zero_bit/set_bit/clear_bit always operate on unsigned long words, so the out-of-bounds access occurs reliably on typical max_reqs-derived chain counts and always for the fixed 4-bit evtack and 16-bit devrem bitmaps, with no attacker-uncontrollable race or rare config required.\nPR:L - An unprivileged local user with access to a block device or filesystem backed by the mpi3mr HBA can submit multi-segment I/O that takes mpi3mr_prepare_sg_scmd \u2192 mpi3mr_get_chain_idx and exercises the undersized chain_bitmap; CAP_SYS_RAWIO/BSG firmware update is not required.\nUI:N - The attacker triggers the vulnerable bitmap operations through their own I/O (or, on the evtack path, their own firmware-management activity); no separate victim or administrator action is required.\nS:U - Impact is confined to kernel slab memory within the host kernel\u2019s security authority; this is not a VM escape, IOMMU bypass, or other cross-boundary compromise.\nC:H - find_first_zero_bit reads past the allocated bitmap into adjacent slab bytes, and the paired set_bit/test_and_set_bit out-of-bounds writes are memory corruption that can be leveraged for broader kernel information disclosure.\nI:H - set_bit/test_and_set_bit/clear_bit perform read-modify-write of a full unsigned long beyond the byte-sized allocation, yielding a slab out-of-bounds write primitive that can corrupt adjacent heap state and enable control-flow hijacking.\nA:H - The commit documents a KASAN slab-out-of-bounds in this path, and the out-of-bounds read/write can oops/panic the kernel (including under KASAN/panic_on_warn), taking down the host and its storage controller."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-05T09:13:44.095Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/6a675a6d57d31da43d8da576465c1cd5d5b0bd3d"
        },
        {
          "url": "https://git.kernel.org/stable/c/8ac713d2e9845e9234bb12ae5903040685d5aff9"
        },
        {
          "url": "https://git.kernel.org/stable/c/339e61565f81a6534afdc18fd854b2e2628bf5db"
        }
      ],
      "title": "scsi: mpi3mr: Use number of bits to manage bitmap sizes",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2023-53376",
    "datePublished": "2025-09-18T13:33:22.364Z",
    "dateReserved": "2025-09-17T14:54:09.735Z",
    "dateUpdated": "2026-08-05T09:13:44.095Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "vulnrichment": {
      "containers": "{\"adp\": [{\"title\": \"CISA ADP Vulnrichment\", \"metrics\": [{\"cvssV3_1\": {\"scope\": \"UNCHANGED\", \"version\": \"3.1\", \"baseScore\": 7.1, \"attackVector\": \"LOCAL\", \"baseSeverity\": \"HIGH\", \"vectorString\": \"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H\", \"integrityImpact\": \"NONE\", \"userInteraction\": \"NONE\", \"attackComplexity\": \"LOW\", \"availabilityImpact\": \"HIGH\", \"privilegesRequired\": \"LOW\", \"confidentialityImpact\": \"HIGH\"}}, {\"other\": {\"type\": \"ssvc\", \"content\": {\"id\": \"CVE-2023-53376\", \"role\": \"CISA Coordinator\", \"options\": [{\"Exploitation\": \"none\"}, {\"Automatable\": \"no\"}, {\"Technical Impact\": \"partial\"}], \"version\": \"2.0.3\", \"timestamp\": \"2026-01-14T18:54:58.227496Z\"}}}], \"problemTypes\": [{\"descriptions\": [{\"lang\": \"en\", \"type\": \"CWE\", \"cweId\": \"CWE-125\", \"description\": \"CWE-125 Out-of-bounds Read\"}]}], \"providerMetadata\": {\"orgId\": \"134c704f-9b21-4f2e-91b3-4a467353bcc0\", \"shortName\": \"CISA-ADP\", \"dateUpdated\": \"2026-01-14T18:54:53.683Z\"}}], \"cna\": {\"title\": \"scsi: mpi3mr: Use number of bits to manage bitmap sizes\", \"metrics\": [{\"cvssV3_1\": {\"version\": \"3.1\", \"baseScore\": 7.8, \"baseSeverity\": \"HIGH\", \"vectorString\": \"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H\"}, \"scenarios\": [{\"lang\": \"en\", \"value\": \"AV:L - The bug is in the Broadcom mpi3mr SCSI HBA driver (bitmap helpers on undersized chain/evtack/devrem/removepend bitmaps), reachable only via local I/O, firmware-event handling, or BSG management on a system with that PCI HBA; there is no network or adjacent-network path.\\nAC:L - Allocation uses byte-rounded sizes while find_first_zero_bit/set_bit/clear_bit always operate on unsigned long words, so the out-of-bounds access occurs reliably on typical max_reqs-derived chain counts and always for the fixed 4-bit evtack and 16-bit devrem bitmaps, with no attacker-uncontrollable race or rare config required.\\nPR:L - An unprivileged local user with access to a block device or filesystem backed by the mpi3mr HBA can submit multi-segment I/O that takes mpi3mr_prepare_sg_scmd \\u2192 mpi3mr_get_chain_idx and exercises the undersized chain_bitmap; CAP_SYS_RAWIO/BSG firmware update is not required.\\nUI:N - The attacker triggers the vulnerable bitmap operations through their own I/O (or, on the evtack path, their own firmware-management activity); no separate victim or administrator action is required.\\nS:U - Impact is confined to kernel slab memory within the host kernel\\u2019s security authority; this is not a VM escape, IOMMU bypass, or other cross-boundary compromise.\\nC:H - find_first_zero_bit reads past the allocated bitmap into adjacent slab bytes, and the paired set_bit/test_and_set_bit out-of-bounds writes are memory corruption that can be leveraged for broader kernel information disclosure.\\nI:H - set_bit/test_and_set_bit/clear_bit perform read-modify-write of a full unsigned long beyond the byte-sized allocation, yielding a slab out-of-bounds write primitive that can corrupt adjacent heap state and enable control-flow hijacking.\\nA:H - The commit documents a KASAN slab-out-of-bounds in this path, and the out-of-bounds read/write can oops/panic the kernel (including under KASAN/panic_on_warn), taking down the host and its storage controller.\"}]}], \"affected\": [{\"repo\": \"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\", \"vendor\": \"Linux\", \"product\": \"Linux\", \"versions\": [{\"status\": \"affected\", \"version\": \"824a156633dfdb0e17979a0d0bb2c757d1bb949c\", \"lessThan\": \"6a675a6d57d31da43d8da576465c1cd5d5b0bd3d\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"824a156633dfdb0e17979a0d0bb2c757d1bb949c\", \"lessThan\": \"8ac713d2e9845e9234bb12ae5903040685d5aff9\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"824a156633dfdb0e17979a0d0bb2c757d1bb949c\", \"lessThan\": \"339e61565f81a6534afdc18fd854b2e2628bf5db\", \"versionType\": \"git\"}], \"programFiles\": [\"drivers/scsi/mpi3mr/mpi3mr.h\", \"drivers/scsi/mpi3mr/mpi3mr_fw.c\"], \"defaultStatus\": \"unaffected\"}, {\"repo\": \"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\", \"vendor\": \"Linux\", \"product\": \"Linux\", \"versions\": [{\"status\": \"affected\", \"version\": \"5.14\"}, {\"status\": \"unaffected\", \"version\": \"0\", \"lessThan\": \"5.14\", \"versionType\": \"semver\"}, {\"status\": \"unaffected\", \"version\": \"6.1.18\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"6.1.*\"}, {\"status\": \"unaffected\", \"version\": \"6.2.5\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"6.2.*\"}, {\"status\": \"unaffected\", \"version\": \"6.3\", \"versionType\": \"original_commit_for_fix\", \"lessThanOrEqual\": \"*\"}], \"programFiles\": [\"drivers/scsi/mpi3mr/mpi3mr.h\", \"drivers/scsi/mpi3mr/mpi3mr_fw.c\"], \"defaultStatus\": \"affected\"}], \"references\": [{\"url\": \"https://git.kernel.org/stable/c/6a675a6d57d31da43d8da576465c1cd5d5b0bd3d\"}, {\"url\": \"https://git.kernel.org/stable/c/8ac713d2e9845e9234bb12ae5903040685d5aff9\"}, {\"url\": \"https://git.kernel.org/stable/c/339e61565f81a6534afdc18fd854b2e2628bf5db\"}], \"x_generator\": {\"engine\": \"bippy-1.2.0\"}, \"descriptions\": [{\"lang\": \"en\", \"value\": \"In the Linux kernel, the following vulnerability has been resolved:\\n\\nscsi: mpi3mr: Use number of bits to manage bitmap sizes\\n\\nTo allocate bitmaps, the mpi3mr driver calculates sizes of bitmaps using\\nbyte as unit. However, bitmap helper functions assume that bitmaps are\\nallocated using unsigned long as unit. This gap causes memory access beyond\\nthe bitmap sizes and results in \\\"BUG: KASAN: slab-out-of-bounds\\\".  The BUG\\nwas observed at firmware download to eHBA-9600. Call trace indicated that\\nthe out-of-bounds access happened in find_first_zero_bit() called from\\nmpi3mr_send_event_ack() for miroc-\u003eevtack_cmds_bitmap.\\n\\nTo fix the BUG, do not use bytes to manage bitmap sizes. Instead, use\\nnumber of bits, and call bitmap helper functions which take number of bits\\nas arguments. For memory allocation, call bitmap_zalloc() instead of\\nkzalloc() and krealloc(). For memory free, call bitmap_free() instead of\\nkfree(). For zero clear, call bitmap_clear() instead of memset().\\n\\nRemove three fields for bitmap byte sizes in struct scmd_priv which are no\\nlonger required. Replace the field dev_handle_bitmap_sz with\\ndev_handle_bitmap_bits to keep number of bits of removepend_bitmap across\\nresize.\"}], \"cpeApplicability\": [{\"nodes\": [{\"negate\": false, \"cpeMatch\": [{\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"6.1.18\", \"versionStartIncluding\": \"5.14\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"6.2.5\", \"versionStartIncluding\": \"5.14\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"6.3\", \"versionStartIncluding\": \"5.14\"}], \"operator\": \"OR\"}]}], \"providerMetadata\": {\"orgId\": \"416baaa9-dc9f-4396-8d5f-8c081fb06d67\", \"shortName\": \"Linux\", \"dateUpdated\": \"2026-08-05T09:13:44.095Z\"}}}",
      "cveMetadata": "{\"cveId\": \"CVE-2023-53376\", \"state\": \"PUBLISHED\", \"dateUpdated\": \"2026-08-05T09:13:44.095Z\", \"dateReserved\": \"2025-09-17T14:54:09.735Z\", \"assignerOrgId\": \"416baaa9-dc9f-4396-8d5f-8c081fb06d67\", \"datePublished\": \"2025-09-18T13:33:22.364Z\", \"assignerShortName\": \"Linux\"}",
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }
  }
}


Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Sightings

Author Source Type Date

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or seen somewhere by the user.
  • Confirmed: The vulnerability is confirmed from an analyst perspective.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • Exploited: This vulnerability was exploited and seen by the user reporting the sighting.
  • Patched: This vulnerability was successfully patched by the user reporting the sighting.
  • Not exploited: This vulnerability was not exploited or seen by the user reporting the sighting.
  • Not confirmed: The user expresses doubt about the veracity of the vulnerability.
  • Not patched: This vulnerability was not successfully patched by the user reporting the sighting.


Loading…

Loading…