CVE-2024-26766

Yüksək

Təsvir

Linux kernelində aşağıdakı zəiflik aradan qaldırılıb: IB/hfi1: sdma.h faylında tx->num_descs səhvinin bir vahid fərqlə düzəldilməsi Təəssüf ki, `fd8958efe877` commit-i `descs` massivinin daşmasına səbəb olan başqa bir səhv yaratmışdı. Bu, `sendmsg` sistem çağırışı ilə asanlıqla təkrar istehsal oluna bilən sonrakı çökmələrə gətirib çıxarır. [ 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, <<< tx sorğu strukturunda etibarsız göstərici sdma_status = 0x0, SDMA_DESC0_LAST_DESC_FLAG (bit 62) complete = 0x0, priv = 0x0, txq = 0xffff9cfea4e69880, skb = 0xffff9d099809f400 } Əgər SDMA göndərişi dəqiq 6 deskriptordan ibarətdirsə və dword doldurulması tələb edirsə (7-ci deskriptorda), sdma_txreq deskriptor massivi düzgün genişləndirilmir və paket konteyner strukturuna daşır. Bu, göndərişin tamamlanması zamanı panikaya səbəb olur. Dəqiq panika konteyner strukturunun hansı elementlərinin zədələnməsindən asılı olaraq dəyişir. Düzəliş deskriptor massivinin genişləndirilməsi ehtiyacını yoxlamaq üçün `_pad_sdma_tx_descs()` funksiyasında düzgün ifadədən istifadə etməkdir. Bu yamaqla çökmələr artıq təkrar istehsal olunmur və maşın sabit işləyir.

CiddilikYüksək
CVSS7.8
İstismar ehtimalı—
MəhsulLinux Kernel
Dərc3 apr 2024
İlk görülmə3 apr 2024

Necə düzəltmək olar

Yeniləyin
  • linux linux_kernel4.19.308, 5.4.270, 5.10.211, 5.15.150, 6.1.80, 6.6.19, 6.7.7 və ya daha yeni versiya

Təsirlənən məhsullar

MəhsulTəsirlənən versiyalarDüzəldildiyi versiya
linux linux_kernel4.19.291 ≤ v < 4.19.308, 5.4.251 ≤ v < 5.4.270, 5.10.188 ≤ v < 5.10.211, 5.15.99 ≤ v < 5.15.150, 6.1.16 ≤ v < 6.1.80, 6.2.3 ≤ v < 6.6.19, 6.7 ≤ v < 6.7.7, 6.84.19.308, 5.4.270, 5.10.211, 5.15.150, 6.1.80, 6.6.19, 6.7.7
debian debian_linux10.0—

Versiyanızı yoxlayın

Məhsulu seçin və istifadə etdiyiniz versiyanı yazın; versiyanın təsirlənən aralıqda olub-olmadığını görün.

Intelligence 360 paketində

Attack Surface Management

Domenlərinizə bağlı aktivləri, onlarda işləyən texnologiyaları və məlum zəiflikləri bir siyahıda görün.