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

  speakup: Fix sizeof() vs ARRAY_SIZE() bug

  The "buf" pointer is an array of u16 values
summary: |-
  In the Linux kernel, the following vulnerability has been resolved:

  speakup: Fix sizeof() vs ARRAY_SIZE() bug

  The "buf" pointer is an array of u16 values.  This code should be
  using ARRAY_SIZE() (which is 256) instead of sizeof() (whic…
severity: high
cvss: 7.8
cvssVector: 'CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H'
cwe:
  - CWE-129
vendor: linux
product: linux_kernel
affected:
  - 'linux_kernel >= 4.19.313, < 4.19.316'
  - 'linux_kernel >= 5.4.275, < 5.4.278'
  - 'linux_kernel >= 5.10.216, < 5.10.219'
  - 'linux_kernel >= 5.15.157, < 5.15.161'
  - 'linux_kernel >= 6.1.88, < 6.1.93'
  - 'linux_kernel >= 6.6.29, < 6.6.33'
  - 'linux_kernel >= 6.8.8, < 6.8.12'
  - 'linux_kernel >= 6.9, < 6.9.3'
patched:
  - linux_kernel 6.9.3
published: '2024-06-19'
updated: '2026-10-15'
sourceUpdated: '2026-10-15T01:18:30.113'
source: NVD
sourceUrl: 'https://nvd.nist.gov/vuln/detail/CVE-2024-38587'
references:
  - url: 'https://git.kernel.org/stable/c/008ab3c53bc4f0b2f20013c8f6c204a3203d0b8b'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/07ef95cc7a579731198c93beed281e3a79a0e586'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/3726f75a1ccc16cd335c0ccfad1d92ee08ecba5e'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/42f0a3f67158ed6b2908d2b9ffbf7e96d23fd358'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/504178fb7d9f6cdb0496d5491efb05f45597e535'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/c6e1650cf5df1bd6638eeee231a683ef30c7d4eb'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/cd7f3978c2ec741aedd1d860b2adb227314cf996'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/d52c04474feac8e305814a5228e622afe481b2ef'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/eb1ea64328d4cc7d7a912c563f8523d5259716ef'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/008ab3c53bc4f0b2f20013c8f6c204a3203d0b8b'
    label: af854a3a-2127-422b-91ae-364da2661108
  - url: 'https://git.kernel.org/stable/c/07ef95cc7a579731198c93beed281e3a79a0e586'
    label: af854a3a-2127-422b-91ae-364da2661108
  - url: 'https://git.kernel.org/stable/c/3726f75a1ccc16cd335c0ccfad1d92ee08ecba5e'
    label: af854a3a-2127-422b-91ae-364da2661108
  - url: 'https://git.kernel.org/stable/c/42f0a3f67158ed6b2908d2b9ffbf7e96d23fd358'
    label: af854a3a-2127-422b-91ae-364da2661108
  - url: 'https://git.kernel.org/stable/c/504178fb7d9f6cdb0496d5491efb05f45597e535'
    label: af854a3a-2127-422b-91ae-364da2661108
  - url: 'https://git.kernel.org/stable/c/c6e1650cf5df1bd6638eeee231a683ef30c7d4eb'
    label: af854a3a-2127-422b-91ae-364da2661108
  - url: 'https://git.kernel.org/stable/c/cd7f3978c2ec741aedd1d860b2adb227314cf996'
    label: af854a3a-2127-422b-91ae-364da2661108
  - url: 'https://git.kernel.org/stable/c/d52c04474feac8e305814a5228e622afe481b2ef'
    label: af854a3a-2127-422b-91ae-364da2661108
  - url: 'https://git.kernel.org/stable/c/eb1ea64328d4cc7d7a912c563f8523d5259716ef'
    label: af854a3a-2127-422b-91ae-364da2661108
  - url: 'https://lists.debian.org/debian-lts-announce/2024/06/msg00020.html'
    label: af854a3a-2127-422b-91ae-364da2661108
  - url: 'https://cert-portal.siemens.com/productcert/html/ssa-265688.html'
    label: 0b142b55-0307-4c5a-b3c9-f314f3fb7c5e
  - url: 'https://cert-portal.siemens.com/productcert/html/ssa-613116.html'
    label: 0b142b55-0307-4c5a-b3c9-f314f3fb7c5e
tags:
  - nvd
  - cve.org
epss: 0.00788
epssPercentile: 0.55185
ingestedAt: '2026-10-15T03:30:12.707Z'
ssvc:
  exploitation: none
  automatable: 'no'
  technicalImpact: partial
  timestamp: '2024-06-20T14:49:14.118323Z'
---

## Overview

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

speakup: Fix sizeof() vs ARRAY_SIZE() bug

The "buf" pointer is an array of u16 values.  This code should be
using ARRAY_SIZE() (which is 256) instead of sizeof() (which is 512),
otherwise it can the still got out of bounds.

## Affected

- `linux_kernel >= 4.19.313, < 4.19.316`
- `linux_kernel >= 5.4.275, < 5.4.278`
- `linux_kernel >= 5.10.216, < 5.10.219`
- `linux_kernel >= 5.15.157, < 5.15.161`
- `linux_kernel >= 6.1.88, < 6.1.93`
- `linux_kernel >= 6.6.29, < 6.6.33`
- `linux_kernel >= 6.8.8, < 6.8.12`
- `linux_kernel >= 6.9, < 6.9.3`

## Remediation

Upgrade past the affected range:

- `linux_kernel 6.9.3`
