Skip to content
Fencer Vulns
high 7.8

CVE-2024-26766 json

IB/hfi1: Fix sdma.h tx->num_descs off-by-one error

published 2024-04-03 2 y ago modified 2026-08-05 3 mo ago also EUVD-2024-24028

cvss
7.8
version 3.1, CNA
cisa kev
Not listed
not in CISA's catalog
epss
0.3%
EPSS 0.3% chance of exploitation in 30 days, percentile 19%
public exploits
0
none known

Summary

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

IB/hfi1: Fix sdma.h tx->num_descs off-by-one error

Unfortunately the commit `fd8958efe877` introduced another error causing the `descs` array to overflow. This reults in further crashes easily reproducible by `sendmsg` system call.

[ 1080.836473] general protection fault, probably for non-canonical address 0x400300015528b00a: 0000 [#1] PREEMPT SMP PTI [ 1080.869326] RIP: 0010:hfi1_ipoib_build_ib_tx_headers.constprop.0+0xe1/0x2b0 [hfi1] -- [ 1080.974535] Call Trace: [ 1080.976990] <TASK> [ 1081.021929] hfi1_ipoib_send_dma_common+0x7a/0x2e0 [hfi1] [ 1081.027364] hfi1_ipoib_send_dma_list+0x62/0x270 [hfi1] [ 1081.032633] hfi1_ipoib_send+0x112/0x300 [hfi1] [ 1081.042001] ipoib_start_xmit+0x2a9/0x2d0 [ib_ipoib] [ 1081.046978] dev_hard_start_xmit+0xc4/0x210 -- [ 1081.148347] __sys_sendmsg+0x59/0xa0

crash> ipoib_txreq 0xffff9cfeba229f00 struct ipoib_txreq { txreq = { list = { next = 0xffff9cfeba229f00, prev = 0xffff9cfeba229f00 }, descp = 0xffff9cfeba229f40, coalesce_buf = 0x0, wait = 0xffff9cfea4e69a48, complete = 0xffffffffc0fe0760 <hfi1_ipoib_sdma_complete>, packet_len = 0x46d, tlen = 0x0, num_desc = 0x0, desc_limit = 0x6, next_descq_idx = 0x45c, coalesce_idx = 0x0, flags = 0x0, descs = {{ qw = {0x8024000120dffb00, 0x4} # SDMA_DESC0_FIRST_DESC_FLAG (bit 63) }, { qw = { 0x3800014231b108, 0x4} }, { qw = { 0x310000e4ee0fcf0, 0x8} }, { qw = { 0x3000012e9f8000, 0x8} }, { qw = { 0x59000dfb9d0000, 0x8} }, { qw = { 0x78000e02e40000, 0x8} }} }, sdma_hdr = 0x400300015528b000, <<< invalid pointer in the tx request structure sdma_status = 0x0, SDMA_DESC0_LAST_DESC_FLAG (bit 62) complete = 0x0, priv = 0x0, txq = 0xffff9cfea4e69880, skb = 0xffff9d099809f400 }

If an SDMA send consists of exactly 6 descriptors and requires dword padding (in the 7th descriptor), the sdma_txreq descriptor array is not properly expanded and the packet will overflow into the container structure. This results in a panic when the send completion runs. The exact panic varies depending on what elements of the container structure get corrupted. The fix is to use the correct expression in _pad_sdma_tx_descs() to test the need to expand the descriptor array.

With this patch the crashes are no longer reproducible and the machine is stable.

Patch / fix

  • Linux Linux 4.19.308, 5.4.270, 5.10.211, 5.15.150, 6.1.80, 6.3, 6.6.19, 6.7.7, 6.8
  • linux Debian 12 6.1.82-1
  • linux Debian 14, Debian 13 6.7.7-1

debian advisories DEBIAN-CVE-2024-26766

  • linux Ubuntu 20.04 LTS 5.4.0-186.206
  • linux Ubuntu 22.04 LTS 5.15.0-112.122
  • linux-aws Ubuntu 20.04 LTS 5.4.0-1126.136
  • linux-aws Ubuntu 22.04 LTS 5.15.0-1063.69
  • linux-gcp Ubuntu 20.04 LTS 5.4.0-1130.139
  • linux-gcp Ubuntu 22.04 LTS 5.15.0-1062.70
  • linux-gke Ubuntu 22.04 LTS 5.15.0-1060.66
  • linux-ibm Ubuntu 20.04 LTS 5.4.0-1073.78

ubuntu advisories UBUNTU-CVE-2024-26766

Ubuntu security data © Canonical Ltd., from https://github.com/canonical/ubuntu-security-notices via OSV; changed: normalised to fixed package versions per release. CC BY-SA 4.0

  • kernel RHEL 8 4.18.0-553.100.1.el8_10
  • perf RHEL 8 4.18.0-553.100.1.el8_10
  • bpftool RHEL 8 4.18.0-553.100.1.el8_10
  • kernel-core RHEL 8 4.18.0-553.100.1.el8_10
  • kernel-tools RHEL 8 4.18.0-553.100.1.el8_10
  • python3-perf RHEL 8 4.18.0-553.100.1.el8_10
  • kernel-modules RHEL 8 4.18.0-553.100.1.el8_10
  • kernel-zfcpdump RHEL 8 4.18.0-553.100.1.el8_10

red hat advisories RHSA-2026:1662RHSA-2026:1661

  • kernel-livepatch-SLE15-SP5_Update_10 SLE Live Patching 15 SP5 13-150500.11.8.1
  • kernel-livepatch-SLE15-SP4_Update_23 SLE Live Patching 15 SP4 13-150400.9.8.1
  • kernel-livepatch-SLE15-SP4_Update_24 SLE Live Patching 15 SP4 11-150400.9.6.1
  • kernel-livepatch-SLE15-SP4_Update_25 SLE Live Patching 15 SP4 11-150400.9.8.1
  • kernel-livepatch-SLE15-SP5_Update_10 SLE Live Patching 15 SP5 12-150500.11.8.1
  • kernel-livepatch-SLE15-SP4_Update_25 SLE Live Patching 15 SP4 10-150400.9.8.1
  • kernel-livepatch-SLE15-SP4_Update_24 SLE Live Patching 15 SP4 10-150400.9.6.1
  • kernel-livepatch-SLE15-SP4_Update_23 SLE Live Patching 15 SP4 12-150400.9.8.1

suse advisories SUSE-SU-2025:0266-1SUSE-SU-2025:0261-1SUSE-SU-2025:0251-1SUSE-SU-2025:0248-1SUSE-SU-2025:0158-1SUSE-SU-2025:0150-1

  • kernel-rt AlmaLinux 8 4.18.0-553.100.1.rt7.441.el8_10
  • kernel-rt-core AlmaLinux 8 4.18.0-553.100.1.rt7.441.el8_10
  • kernel-rt-modules AlmaLinux 8 4.18.0-553.100.1.rt7.441.el8_10
  • kernel-rt-debug-core AlmaLinux 8 4.18.0-553.100.1.rt7.441.el8_10
  • kernel-rt-debug-modules AlmaLinux 8 4.18.0-553.100.1.rt7.441.el8_10
  • kernel-rt-modules-extra AlmaLinux 8 4.18.0-553.100.1.rt7.441.el8_10
  • kernel-rt-debug-modules-extra AlmaLinux 8 4.18.0-553.100.1.rt7.441.el8_10
  • kernel AlmaLinux 8 4.18.0-553.100.1.el8_10

almalinux advisories ALSA-2026:1661ALSA-2026:1662

  • kernel-rt Rocky Linux 8 4.18.0-553.100.1.rt7.441.el8_10
  • kernel Rocky Linux 8 4.18.0-553.100.1.el8_10

rocky linux advisories RLSA-2026:1661RLSA-2026:1662

Vendor advisories

What the vendors themselves say about their products: affected, fixed or not affected, and what to do.

red hat product security vex CVE-2024-26766 updated cvss 4.4

kernel: IB/hfi1: Fix sdma.h tx->num_descs off-by-one error

  • Red Hat Enterprise Linux BaseOS (v. 8) perf 4.18.0-553.100.1.el8_10, kernel 4.18.0-553.100.1.el8_10, bpftool 4.18.0-553.100.1.el8_10, kernel-core 4.18.0-553.100.1.el8_10, kernel-tools 4.18.0-553.100.1.el8_10, python3-perf 4.18.0-553.100.1.el8_10, +15 more Red Hat Enterprise Linux CRB (v. 8) kernel-debuginfo-common-x86_64 4.18.0-553.100.1.el8_10, kernel-debuginfo-common-aarch64 4.18.0-553.100.1.el8_10, kernel-debuginfo-common-ppc64le 4.18.0-553.100.1.el8_10
    fixed: vendor fix RHSA-2026:1662
  • Red Hat Enterprise Linux NFV (v. 8) kernel-rt 4.18.0-553.100.1.rt7.441.el8_10, kernel-rt-kvm 4.18.0-553.100.1.rt7.441.el8_10, kernel-rt-core 4.18.0-553.100.1.rt7.441.el8_10, kernel-rt-modules 4.18.0-553.100.1.rt7.441.el8_10, kernel-rt-debug-kvm 4.18.0-553.100.1.rt7.441.el8_10, kernel-rt-debug-core 4.18.0-553.100.1.rt7.441.el8_10, +4 more Red Hat Enterprise Linux RT (v. 8) kernel-rt 4.18.0-553.100.1.rt7.441.el8_10, kernel-rt-core 4.18.0-553.100.1.rt7.441.el8_10, kernel-rt-modules 4.18.0-553.100.1.rt7.441.el8_10, kernel-rt-debug-core 4.18.0-553.100.1.rt7.441.el8_10, kernel-rt-debug-modules 4.18.0-553.100.1.rt7.441.el8_10, kernel-rt-modules-extra 4.18.0-553.100.1.rt7.441.el8_10, +2 more
    fixed: vendor fix RHSA-2026:1661
  • Red Hat Enterprise Linux 6 perf, kernel, python-perf, kernel-kdump, kernel-firmware, kernel-bootwrapper, +1 more Red Hat Enterprise Linux 7 perf, kernel, bpftool, kernel-rt, python-perf, kernel-kdump, +8 more Red Hat Enterprise Linux 9 rv, perf, rtla, kernel, bpftool, libperf, +83 more
    not affected: vulnerable code not present

Red Hat CSAF VEX © Red Hat, Inc., from https://security.access.redhat.com/data/csaf/v2/vex/; changed: reduced to product statuses and remediations. CC BY 4.0 · csaf

cisa ICSA-25-226-15 updated

Siemens SINEC OS

  • Siemens RUGGEDCOM RST2428P (6GK6242-6PA00) Siemens SCALANCE XC-300/XR-300/XC-400/XR-500WG/XR-500 family Siemens SCALANCE XCM-/XRM-/XCH-/XRH-300 family
    not affected

Facts from CISA's republication of the vendor's own advisory (CSAF); the linked advisory is the authoritative source. CISA notification · csaf

CISA SSVC

Exploitation
none
Automatable
no
Technical impact
partial
Assessed
2 y ago

Exploit prediction

0.27% chance of exploitation in the next 30 days, higher than 19% of all scored CVEs (FIRST EPSS, 2026-11-08).

CVSS scores

assigned by version score vector
CNA 3.1 7.8 CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
NVD 3.1 5.5 CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H

Affected products

  • Linux Linux

Classification

Weakness
Technology feeds

References

Sources

Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.