---
id: CVE-2024-40901
title: |-
  In the Linux kernel, the following vulnerability has been resolved:

  scsi: mpt3sas: Avoid test/set_bit() operating in non-allocated memory

  There is a potential out-of-bounds access when using test_bit() on a single
  word
summary: |-
  In the Linux kernel, the following vulnerability has been resolved:

  scsi: mpt3sas: Avoid test/set_bit() operating in non-allocated memory

  There is a potential out-of-bounds access when using test_bit() on a single
  word. The test_bit() …
severity: high
cvss: 7.3
cvssVector: 'CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:L/I:H/A:H'
cwe:
  - CWE-787
vendor: linux
product: linux_kernel
affected:
  - 'linux_kernel >= 4.10, < 4.19.317'
  - 'linux_kernel >= 4.20, < 5.4.279'
  - 'linux_kernel >= 5.5, < 5.10.221'
  - 'linux_kernel >= 5.11, < 5.15.162'
  - 'linux_kernel >= 5.16, < 6.1.95'
  - 'linux_kernel >= 6.2, < 6.6.35'
  - 'linux_kernel >= 6.7, < 6.9.6'
  - linux_kernel = 6.10
patched:
  - linux_kernel 6.9.6
published: '2024-07-12'
updated: '2026-10-15'
sourceUpdated: '2026-10-15T01:18:36.557'
source: NVD
sourceUrl: 'https://nvd.nist.gov/vuln/detail/CVE-2024-40901'
references:
  - url: 'https://git.kernel.org/stable/c/0081d2b3ae0a17a86b8cc0fa3c8bdc54e233ba16'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/18abb5db0aa9b2d48f7037a88b41af2eef821674'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/19649e49a6df07cd2e03e0a11396fd3a99485ec2'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/4254dfeda82f20844299dca6c38cbffcfd499f41'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/46bab2bcd771e725ff5ca3a68ba68cfeac45676c'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/521f333e644c4246ca04a4fc4772edc53dd2a801'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/9079338c5a0d1f1fee34fb1c9e99b754efe414c5'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/e9bce7c751f6d6c7be88c0bc081a66aaf61a23ee'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/0081d2b3ae0a17a86b8cc0fa3c8bdc54e233ba16'
    label: af854a3a-2127-422b-91ae-364da2661108
  - url: 'https://git.kernel.org/stable/c/18abb5db0aa9b2d48f7037a88b41af2eef821674'
    label: af854a3a-2127-422b-91ae-364da2661108
  - url: 'https://git.kernel.org/stable/c/19649e49a6df07cd2e03e0a11396fd3a99485ec2'
    label: af854a3a-2127-422b-91ae-364da2661108
  - url: 'https://git.kernel.org/stable/c/4254dfeda82f20844299dca6c38cbffcfd499f41'
    label: af854a3a-2127-422b-91ae-364da2661108
  - url: 'https://git.kernel.org/stable/c/46bab2bcd771e725ff5ca3a68ba68cfeac45676c'
    label: af854a3a-2127-422b-91ae-364da2661108
  - url: 'https://git.kernel.org/stable/c/521f333e644c4246ca04a4fc4772edc53dd2a801'
    label: af854a3a-2127-422b-91ae-364da2661108
  - url: 'https://git.kernel.org/stable/c/9079338c5a0d1f1fee34fb1c9e99b754efe414c5'
    label: af854a3a-2127-422b-91ae-364da2661108
  - url: 'https://git.kernel.org/stable/c/e9bce7c751f6d6c7be88c0bc081a66aaf61a23ee'
    label: af854a3a-2127-422b-91ae-364da2661108
  - url: 'https://lists.debian.org/debian-lts-announce/2025/01/msg00001.html'
    label: af854a3a-2127-422b-91ae-364da2661108
  - url: 'https://cert-portal.siemens.com/productcert/html/ssa-355557.html'
    label: 0b142b55-0307-4c5a-b3c9-f314f3fb7c5e
  - url: 'https://cert-portal.siemens.com/productcert/html/ssa-398330.html'
    label: 0b142b55-0307-4c5a-b3c9-f314f3fb7c5e
tags:
  - nvd
  - cve.org
epss: 0.00316
epssPercentile: 0.2438
ingestedAt: '2026-10-15T03:30:12.719Z'
ssvc:
  exploitation: none
  automatable: 'no'
  technicalImpact: partial
  timestamp: '2024-09-10T17:06:31.349447Z'
---

## Overview

In the Linux kernel, the following vulnerability has been resolved:

scsi: mpt3sas: Avoid test/set_bit() operating in non-allocated memory

There is a potential out-of-bounds access when using test_bit() on a single
word. The test_bit() and set_bit() functions operate on long values, and
when testing or setting a single word, they can exceed the word
boundary. KASAN detects this issue and produces a dump:

	 BUG: KASAN: slab-out-of-bounds in _scsih_add_device.constprop.0 (./arch/x86/include/asm/bitops.h:60 ./include/asm-generic/bitops/instrumented-atomic.h:29 drivers/scsi/mpt3sas/mpt3sas_scsih.c:7331) mpt3sas

	 Write of size 8 at addr ffff8881d26e3c60 by task kworker/u1536:2/2965

For full log, please look at [1].

Make the allocation at least the size of sizeof(unsigned long) so that
set_bit() and test_bit() have sufficient room for read/write operations
without overwriting unallocated memory.

[1] Link: https://lore.kernel.org/all/ZkNcALr3W3KGYYJG@gmail.com/

## Affected

- `linux_kernel >= 4.10, < 4.19.317`
- `linux_kernel >= 4.20, < 5.4.279`
- `linux_kernel >= 5.5, < 5.10.221`
- `linux_kernel >= 5.11, < 5.15.162`
- `linux_kernel >= 5.16, < 6.1.95`
- `linux_kernel >= 6.2, < 6.6.35`
- `linux_kernel >= 6.7, < 6.9.6`
- `linux_kernel = 6.10`

## Remediation

Upgrade past the affected range:

- `linux_kernel 6.9.6`
