İçeriğe atla
Noroxi
CVE-2021-47069· NVD / CVE Programı· CNA Linux

ipc/mqueue, msg, sem: avoid relying on a stack reference past its expiry

In the Linux kernel, the following vulnerability has been resolved: ipc/mqueue, msg, sem: avoid relying on a stack reference past its expiry do_mq_timedreceive calls wq_sleep with a stack local address. The sender (do_mq_timedsend) uses this address to later call pipelined_send. This leads to a very hard to trigger race where a do_mq_timedreceive call might return and leave do_mq_timedsend to rely on an invalid address, causing the following crash: RIP: 0010:wake_q_add_safe+0x13/0x60 Call Trace: __x64_sys_mq_timedsend+0x2a9/0x490 do_syscall_64+0x80/0x680 entry_SYSCALL_64_after_hwframe+0x44/0xa9 RIP: 0033:0x7f5928e40343 The race occurs as: 1. do_mq_timedreceive calls wq_sleep with the address of `struct ext_wait_queue` on function stack (aliased as `ewq_addr` here) - it holds a valid `struct ext_wait_queue *` as long as the stack has not been overwritten. 2. `ewq_addr` gets added to info->e_wait_q[RECV].list in wq_add, and do_mq_timedsend receives it via wq_get_first_waiter(info, RECV) to call __pipelined_op. 3. Sender calls __pipelined_op::smp_store_release(&this->state, STATE_READY). Here is where the race window begins. (`this` is `ewq_addr`.) 4. If the receiver wakes up now in do_mq_timedreceive::wq_sleep, it will see `state == STATE_READY` and break. 5. do_mq_timedreceive returns, and `ewq_addr` is no longer guaranteed to be a `struct ext_wait_queue *` since it was on do_mq_timedreceive's stack. (Although the address may not get overwritten until another function happens to touch it, which means it can persist around for an indefinite time.) 6. do_mq_timedsend::__pipelined_op() still believes `ewq_addr` is a `struct ext_wait_queue *`, and uses it to find a task_struct to pass to the wake_q_add_safe call. In the lucky case where nothing has overwritten `ewq_addr` yet, `ewq_addr->task` is the right task_struct. In the unlucky case, __pipelined_op::wake_q_add_safe gets handed a bogus address as the receiver's task_struct causing the crash. do_mq_timedsend::__pipelined_op() should not dereference `this` after setting STATE_READY, as the receiver counterpart is now free to return. Change __pipelined_op to call wake_q_add_safe on the receiver's task_struct returned by get_task_struct, instead of dereferencing `this` which sits on the receiver's stack. As Manfred pointed out, the race potentially also exists in ipc/msg.c::expunge_all and ipc/sem.c::wake_up_sem_queue_prepare. Fix those in the same way.

YüksekCVSS 7.0 · v3.1—İstismar yok Düzeltme var
Yayın
1 Mar 2024
Güncelleme
5 Ağu 2026
EPSS
%0,3 · 16. yüzdelik
Bu CVE’yi takip et

Takip etmek için giriş yap · Takip ettiğin kayıt KEV’e girer, istismarı çıkar ya da güncellenirse bildirim alırsın.

Rapor araçları

JSON

Aksiyon skoru

28

İzleyin

Şimdilik düşük öncelik.

CVSS
28 / 40 · 7.0 / 10
CISA KEV
0 / 30 · Listede değil
EPSS
0 / 30 · %0,3

CISA SSVC kararı

Sömürü
yok
Otomatikleştirilebilir
hayır
Teknik etki
kısmi

Vulnrichment: CISA'nın karar ağacı girdileri.

CNA ile NVD puanı

NVD
7,0
CNA · Linux
7,8
0,8 puan fark

CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H

Kaydı açan otoritenin puanı ile NVD’nin bağımsız puanı. İki puan arasındaki fark ciddiyetin tartışmalı olduğunu gösterir.

Noroxi analizi

Bu kayıt için henüz Noroxi analizi yok

Veritabanındaki yüz binlerce zafiyetin tamamına elle analiz yazmıyoruz; bu dürüst olmazdı. Öne çıkan ve sahada etkisi olan zafiyetler için mekanizma, tespit ve kapatma adımlarını ekibimiz yazıyor.

Bu ürünü kullanıyoruz, yardım isteyin

Etkilenen sistemler

ÜreticiÜrün
linuxlinux kernel

Etkilenen sürümler

NVD sürüm aralıkları (katalogdaki ürünler için). Stack’ine sürümle eklersen eşleşme bunlarla yapılır.

  • linux linux kernel5.6 ve sonrası · 5.10.40 öncesi
  • linux linux kernel5.11 ve sonrası · 5.12.7 öncesi
  • linux linux kernel5.13

Üreticinin bildirdiği sürümler

Kaydı açan otorite (Linux) tarafından bildirilen etkilenen sürüm aralıkları. NVD'nin CPE analizinden bağımsızdır ve genellikle ondan önce gelir.

  • Linux Linux

    • 5.6etkilenir
    • c5b2cbdbdac563f46ecd5e187253ab1abbd6fc04 ve sonrası · 4528c0c323085e645b8765913b4a7fd42cf49b65 öncesietkilenir · git
    • c5b2cbdbdac563f46ecd5e187253ab1abbd6fc04 ve sonrası · 807fa14536b26803b858da878b643be72952a097 öncesietkilenir · git
    • c5b2cbdbdac563f46ecd5e187253ab1abbd6fc04 ve sonrası · a11ddb37bf367e6b5239b95ca759e5389bb46048 öncesietkilenir · git
    • 5.6 öncesietkilenmez · semver
    • 5.10.40 ve sonrası · 5.10.* dahil öncesietkilenmez · semver
    • 5.12.7 ve sonrası · 5.12.* dahil öncesietkilenmez · semver
    • 5.13 ve sonrasıetkilenmez · original_commit_for_fix

Paket düzeyi etkilenme

OSV ve GitHub Advisory verisi: ekosistem, paket ve aralık. SBOM eşleşmesi bu tabloyu kullanır.

EkosistemPaketEtkilenen aralıkDüzeltme
AlmaLinux:8kernel-rt4.18.0-553.8.1.rt7.349.el8_10 öncesi4.18.0-553.8.1.rt7.349.el8_10
AlmaLinux:8kernel-rt-core4.18.0-553.8.1.rt7.349.el8_10 öncesi4.18.0-553.8.1.rt7.349.el8_10
AlmaLinux:8kernel-rt-debug4.18.0-553.8.1.rt7.349.el8_10 öncesi4.18.0-553.8.1.rt7.349.el8_10
AlmaLinux:8kernel-rt-debug-core4.18.0-553.8.1.rt7.349.el8_10 öncesi4.18.0-553.8.1.rt7.349.el8_10
AlmaLinux:8kernel-rt-debug-devel4.18.0-553.8.1.rt7.349.el8_10 öncesi4.18.0-553.8.1.rt7.349.el8_10
AlmaLinux:8kernel-rt-debug-kvm4.18.0-553.8.1.rt7.349.el8_10 öncesi4.18.0-553.8.1.rt7.349.el8_10
AlmaLinux:8kernel-rt-debug-modules4.18.0-553.8.1.rt7.349.el8_10 öncesi4.18.0-553.8.1.rt7.349.el8_10
AlmaLinux:8kernel-rt-debug-modules-extra4.18.0-553.8.1.rt7.349.el8_10 öncesi4.18.0-553.8.1.rt7.349.el8_10
AlmaLinux:8kernel-rt-devel4.18.0-553.8.1.rt7.349.el8_10 öncesi4.18.0-553.8.1.rt7.349.el8_10
AlmaLinux:8kernel-rt-kvm4.18.0-553.8.1.rt7.349.el8_10 öncesi4.18.0-553.8.1.rt7.349.el8_10
AlmaLinux:8kernel-rt-modules4.18.0-553.8.1.rt7.349.el8_10 öncesi4.18.0-553.8.1.rt7.349.el8_10
AlmaLinux:8kernel-rt-modules-extra4.18.0-553.8.1.rt7.349.el8_10 öncesi4.18.0-553.8.1.rt7.349.el8_10
Debian:12linux5.10.40-1 öncesi5.10.40-1
Red Hat:enterprise_linux:8::baseosbpftool0:4.18.0-553.8.1.el8_10 öncesi0:4.18.0-553.8.1.el8_10
Red Hat:enterprise_linux:8::baseosbpftool-debuginfo0:4.18.0-553.8.1.el8_10 öncesi0:4.18.0-553.8.1.el8_10
Red Hat:enterprise_linux:8::baseoskernel0:4.18.0-553.8.1.el8_10 öncesi0:4.18.0-553.8.1.el8_10
Red Hat:enterprise_linux:8::baseoskernel-abi-stablelists0:4.18.0-553.8.1.el8_10 öncesi0:4.18.0-553.8.1.el8_10
Red Hat:enterprise_linux:8::baseoskernel-core0:4.18.0-553.8.1.el8_10 öncesi0:4.18.0-553.8.1.el8_10
Red Hat:enterprise_linux:8::baseoskernel-debug0:4.18.0-553.8.1.el8_10 öncesi0:4.18.0-553.8.1.el8_10
Red Hat:enterprise_linux:8::baseoskernel-debug-core0:4.18.0-553.8.1.el8_10 öncesi0:4.18.0-553.8.1.el8_10
Red Hat:enterprise_linux:8::baseoskernel-debug-debuginfo0:4.18.0-553.8.1.el8_10 öncesi0:4.18.0-553.8.1.el8_10
Red Hat:enterprise_linux:8::baseoskernel-debug-devel0:4.18.0-553.8.1.el8_10 öncesi0:4.18.0-553.8.1.el8_10
Red Hat:enterprise_linux:8::baseoskernel-debug-modules0:4.18.0-553.8.1.el8_10 öncesi0:4.18.0-553.8.1.el8_10
Red Hat:enterprise_linux:8::baseoskernel-debug-modules-extra0:4.18.0-553.8.1.el8_10 öncesi0:4.18.0-553.8.1.el8_10

+96

Aynı birincil ürünün en yüksek skorlu diğer kayıtları.

  • CVE-2022-0847A flaw was found in the way the "flags" member of the new pipe buffer structure was lacking proper initialization in copy_page_to_iter_pipe KEV
    89Hemen
  • CVE-2021-22555Heap Out-Of-Bounds Write in Netfilter IP6T_SO_SET_REPLACEKEV
    85Hemen
  • CVE-2016-5195Race condition in mm/gup.c in the Linux kernel 2.x through 4.x before 4.8.3 allows local users to gain privileges by leveraging incorrect haKEV
    83Hemen
  • CVE-2019-13272In the Linux kernel before 5.1.17, ptrace_link in kernel/ptrace.c mishandles the recording of the credentials of a process that wants to creKEV
    77Bu hafta
  • CVE-2013-6282The (1) get_user and (2) put_user API functions in the Linux kernel before 3.5.5 on the v6k and v7 ARM platforms do not validate certain addKEV
    77Bu hafta
  • CVE-2013-2094The perf_swevent_init function in kernel/events/core.c in the Linux kernel before 3.8.9 uses an incorrect integer data type, which allows loKEV
    77Bu hafta

Düzeltme

Hangi sürüme geçmeli

Üretici, paket deposu ve Microsoft kayıtlarından derlenen düzeltme sürümleri. Yükseltmeden önce üreticinin notunu doğrulayın.

Ürün / paketDüzeltilmiş sürümKaynak
Linux Linux4528c0c323085e645b8765913b4a7fd42cf49b65Üretici (CNA)
Linux Linux807fa14536b26803b858da878b643be72952a097Üretici (CNA)
Linux Linuxa11ddb37bf367e6b5239b95ca759e5389bb46048Üretici (CNA)
almalinux:kernel-rt4.18.0-553.8.1.rt7.349.el8_10 · AlmaLinux:8Paket deposu (OSV)
almalinux:kernel-rt-core4.18.0-553.8.1.rt7.349.el8_10 · AlmaLinux:8Paket deposu (OSV)
almalinux:kernel-rt-debug4.18.0-553.8.1.rt7.349.el8_10 · AlmaLinux:8Paket deposu (OSV)
almalinux:kernel-rt-debug-core4.18.0-553.8.1.rt7.349.el8_10 · AlmaLinux:8Paket deposu (OSV)
almalinux:kernel-rt-debug-devel4.18.0-553.8.1.rt7.349.el8_10 · AlmaLinux:8Paket deposu (OSV)
almalinux:kernel-rt-debug-kvm4.18.0-553.8.1.rt7.349.el8_10 · AlmaLinux:8Paket deposu (OSV)
almalinux:kernel-rt-debug-modules4.18.0-553.8.1.rt7.349.el8_10 · AlmaLinux:8Paket deposu (OSV)
almalinux:kernel-rt-debug-modules-extra4.18.0-553.8.1.rt7.349.el8_10 · AlmaLinux:8Paket deposu (OSV)
almalinux:kernel-rt-devel4.18.0-553.8.1.rt7.349.el8_10 · AlmaLinux:8Paket deposu (OSV)
almalinux:kernel-rt-kvm4.18.0-553.8.1.rt7.349.el8_10 · AlmaLinux:8Paket deposu (OSV)
almalinux:kernel-rt-modules4.18.0-553.8.1.rt7.349.el8_10 · AlmaLinux:8Paket deposu (OSV)
almalinux:kernel-rt-modules-extra4.18.0-553.8.1.rt7.349.el8_10 · AlmaLinux:8Paket deposu (OSV)
debian:linux5.10.40-1 · Debian:12Paket deposu (OSV)
red hat:bpftool0:4.18.0-553.8.1.el8_10 · Red Hat:enterprise_linux:8::baseosPaket deposu (OSV)
red hat:bpftool-debuginfo0:4.18.0-553.8.1.el8_10 · Red Hat:enterprise_linux:8::baseosPaket deposu (OSV)
red hat:kernel0:4.18.0-553.8.1.el8_10 · Red Hat:enterprise_linux:8::baseosPaket deposu (OSV)
red hat:kernel-abi-stablelists0:4.18.0-553.8.1.el8_10 · Red Hat:enterprise_linux:8::baseosPaket deposu (OSV)
red hat:kernel-core0:4.18.0-553.8.1.el8_10 · Red Hat:enterprise_linux:8::baseosPaket deposu (OSV)
red hat:kernel-debug0:4.18.0-553.8.1.el8_10 · Red Hat:enterprise_linux:8::baseosPaket deposu (OSV)
red hat:kernel-debug-core0:4.18.0-553.8.1.el8_10 · Red Hat:enterprise_linux:8::baseosPaket deposu (OSV)
red hat:kernel-debug-debuginfo0:4.18.0-553.8.1.el8_10 · Red Hat:enterprise_linux:8::baseosPaket deposu (OSV)
red hat:kernel-debug-devel0:4.18.0-553.8.1.el8_10 · Red Hat:enterprise_linux:8::baseosPaket deposu (OSV)
red hat:kernel-debug-modules0:4.18.0-553.8.1.el8_10 · Red Hat:enterprise_linux:8::baseosPaket deposu (OSV)
red hat:kernel-debug-modules-extra0:4.18.0-553.8.1.el8_10 · Red Hat:enterprise_linux:8::baseosPaket deposu (OSV)
red hat:kernel-debuginfo0:4.18.0-553.8.1.el8_10 · Red Hat:enterprise_linux:8::baseosPaket deposu (OSV)
rocky linux:kernel0:4.18.0-553.8.1.el8_10 · Rocky Linux:8Paket deposu (OSV)
rocky linux:kernel-rt0:4.18.0-553.8.1.rt7.349.el8_10 · Rocky Linux:8Paket deposu (OSV)

+11

İstismar durumu

Bilinen kamuya açık istismar yok

Şu an kamuya açık bir istismar görülmedi. Bu, güvende olduğunuz anlamına gelmez; yalnızca eşiğin biraz daha yüksek olduğunu gösterir.

Araştırma bağlamı

Pentester ve araştırmacı için: saldırı profili, puan anlaşmazlığı, zaman çizelgesi, yama commit’leri, kredi, varyant ve zincir adayları, bug bounty kapsamı. Hepsi mevcut veriden türetilir; istismar kodu içermez.

Zaman çizelgesi

Yayından bugüne: kavram kanıtı, Metasploit modülü, CISA KEV ve düzeltme kaydı. Tarihler kaynakların bildirdiği tarihlerdir.

Yayın dışında tarihli olay yok.

EPSS son 120 gün

FIRST EPSS günlük puanı; yalnızca 0,01 ve üstü değişimler kaydedilir (adım grafiği).

Yama ve commit bağlantıları

Referanslardaki commit, PR ve diff adresleri. Patch-diff ve varyant avı için başlangıç noktası; istismar değil, düzeltmedir.

Referanslarda commit ya da PR bağlantısı yok.

CNA kaydında adı geçen bulan, bildiren ve analistler. Ada tıkla, aynı araştırmacının diğer kayıtlarını gör.

CNA kaydında kredi yok.

Varyant adayları

Aynı üründe aynı zafiyet sınıfı, 18 ay içinde. Yama kök nedeni kapatmadıysa kardeş hata burada olur.

  • CVE-2024-57929324 gün arayladm array: fix releasing a faulty array block twice in dm_array_cursor_end
    28İzleyin
  • CVE-2021-4729481 gün araylanetrom: Decrease sock refcount when sock timers expire
    22İzleyin
  • CVE-2024-49953234 gün araylanet/mlx5e: Fix crash caused by calling __xfrm_state_delete() twice
    22İzleyin
  • CVE-2024-49955234 gün araylaACPI: battery: Fix possible crash when unregistering a battery hook
    22İzleyin
  • CVE-2024-56674301 gün araylavirtio_net: correct netdev_tx_reset_queue() invocation point
    22İzleyin

Zincir adayları

Aynı üründe kimlik doğrulama atlatma ile yetki isteyen bir açık kısa aralıkla yayımlanmış: birlikte kimlik doğrulamasız bir yola dönüşebilir.

—

Bug bounty kapsamı

Bilinen herkese açık program yok.

Kaynak: bounty-targets-data (HackerOne, Bugcrowd, Intigriti, YesWeHack herkese açık listeleri).

Ulusal bildirim (Siber Güvenlik Başkanlığı / USOM)

Bu kaydı anan resmi güvenlik bildirimleri; çözüm önerisi kurumun sayfasında.

Tüm ulusal bildirimler →

Teknik detay

Saldırı koşulları

  • Sisteme yerel erişimi olan biri tetikleyebilir.
  • Düşük yetkili bir hesap yeterli.
  • Kullanıcının bir şey yapması gerekmez.
  • Zamanlama ya da yapılandırma gibi özel koşullar gerekir.

Başarılı olursa

Gizlilik
yüksek · veriler okunabilir
Bütünlük
yüksek · veri ya da yapılandırma değiştirilebilir
Erişilebilirlik
yüksek · hizmet durdurulabilir
Saldırı vektörü
Yerel
Karmaşıklık
Yüksek
Gereken yetki
Düşük
Kullanıcı etkileşimi
Gerekmez
Kapsam
Değişmez
Gizlilik etkisi
Yüksek
Bütünlük etkisi
Yüksek
Erişilebilirlik etkisi
Yüksek

CVSS vektörü

CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H

nvd-primary

Saldırı bağlamı

Bu zafiyet sınıfının (CWE) MITRE CAPEC saldırı desenleri ve ATT&CK teknikleri. Tespit kuralı ve tehdit avı için başlangıç noktası.

Bu CWE için MITRE'de CAPEC/ATT&CK eşlemesi yok.

Değişiklik günlüğü

  1. Düzeltme✗ → ✓

Takip ettiğiniz kayıtlarda bu değişiklikler bildirim olarak da gelir. →

Referanslar

Tüm kayıtlar