CVE-2024-26991: KVM: x86/mmu: x86: Don't overflow lpage_info when checking attributes
Noroxi değerlendirmesi
Öncelik: İzleyin (aksiyon skoru 22/100)
- İzlediğimiz kaynaklarda (CISA KEV, Exploit-DB, Metasploit, Nuclei, GitHub) herkese açık istismar kodu ya da sahada sömürü kaydı yok.
- Önümüzdeki 30 günde sömürülme olasılığı %0,22 (FIRST EPSS).
- Sisteme yerel erişimi olan biri tetikleyebilir. Düşük yetkili bir hesap yeterli. Kullanıcının bir şey yapması gerekmez. Özel bir koşul gerekmez; tekrarlanabilir.
- Düzeltilmiş sürüm: Linux Linux 048cc4a028e635d339687ed968985d2d1669494c, 992b54bd083c5bee24ff7cc35991388ab08598c4.
- Ulusal siber güvenlik bildirimlerinde (siberguvenlik.gov.tr) 1 kez anıldı.
Şimdilik düşük öncelik. Linux Linux 048cc4a028e635d339687ed968985d2d1669494c, 992b54bd083c5bee24ff7cc35991388ab08598c4 ya da daha yeni sürüme yükseltin.
Kaydın verisinden otomatik üretilir: CVSS (NVD ve CNA), CISA KEV ve SSVC, FIRST EPSS, istismar kaynakları, düzeltme sürümleri. Nasıl hesaplıyoruz
Birincil kaynaklar: NVD · CVE.org · FIRST EPSS
In the Linux kernel, the following vulnerability has been resolved: KVM: x86/mmu: x86: Don't overflow lpage_info when checking attributes Fix KVM_SET_MEMORY_ATTRIBUTES to not overflow lpage_info array and trigger KASAN splat, as seen in the private_mem_conversions_test selftest. When memory attributes are set on a GFN range, that range will have specific properties applied to the TDP. A huge page cannot be used when the attributes are inconsistent, so they are disabled for those the specific huge pages. For internal KVM reasons, huge pages are also not allowed to span adjacent memslots regardless of whether the backing memory could be mapped as huge. What GFNs support which huge page sizes is tracked by an array of arrays 'lpage_info' on the memslot, of ‘kvm_lpage_info’ structs. Each index of lpage_info contains a vmalloc allocated array of these for a specific supported page size. The kvm_lpage_info denotes whether a specific huge page (GFN and page size) on the memslot is supported. These arrays include indices for unaligned head and tail huge pages. Preventing huge pages from spanning adjacent memslot is covered by incrementing the count in head and tail kvm_lpage_info when the memslot is allocated, but disallowing huge pages for memory that has mixed attributes has to be done in a more complicated way. During the KVM_SET_MEMORY_ATTRIBUTES ioctl KVM updates lpage_info for each memslot in the range that has mismatched attributes. KVM does this a memslot at a time, and marks a special bit, KVM_LPAGE_MIXED_FLAG, in the kvm_lpage_info for any huge page. This bit is essentially a permanently elevated count. So huge pages will not be mapped for the GFN at that page size if the count is elevated in either case: a huge head or tail page unaligned to the memslot or if KVM_LPAGE_MIXED_FLAG is set because it has mixed attributes. To determine whether a huge page has consistent attributes, the KVM_SET_MEMORY_ATTRIBUTES operation checks an xarray to make sure it consistently has the incoming attribute. Since level - 1 huge pages are aligned to level huge pages, it employs an optimization. As long as the level - 1 huge pages are checked first, it can just check these and assume that if each level - 1 huge page contained within the level sized huge page is not mixed, then the level size huge page is not mixed. This optimization happens in the helper hugepage_has_attrs(). Unfortunately, although the kvm_lpage_info array representing page size 'level' will contain an entry for an unaligned tail page of size level, the array for level - 1 will not contain an entry for each GFN at page size level. The level - 1 array will only contain an index for any unaligned region covered by level - 1 huge page size, which can be a smaller region. So this causes the optimization to overflow the level - 1 kvm_lpage_info and perform a vmalloc out of bounds read. In some cases of head and tail pages where an overflow could happen, callers skip the operation completely as KVM_LPAGE_MIXED_FLAG is not required to prevent huge pages as discussed earlier. But for memslots that are smaller than the 1GB page size, it does call hugepage_has_attrs(). In this case the huge page is both the head and tail page. The issue can be observed simply by compiling the kernel with CONFIG_KASAN_VMALLOC and running the selftest “private_mem_conversions_test”, which produces the output like the following: BUG: KASAN: vmalloc-out-of-bounds in hugepage_has_attrs+0x7e/0x110 Read of size 4 at addr ffffc900000a3008 by task private_mem_con/169 Call Trace: dump_stack_lvl print_report ? __virt_addr_valid ? hugepage_has_attrs ? hugepage_has_attrs kasan_report ? hugepage_has_attrs hugepage_has_attrs kvm_arch_post_set_memory_attributes kvm_vm_ioctl It is a little ambiguous whether the unaligned head page (in the bug case also the tail page) should be expected to have KVM_LPAGE_MIXED_FLAG set. It is not functionally required, as the unal ---truncated---
- Yayın
- 1 May 2024
- Güncelleme
- 17 Haz 2026
- EPSS
- %0,2 · 13. yüzdelik
- CWE
- CWE-125
Rapor araçları
Aksiyon skoru
22
İzleyin
Şimdilik düşük öncelik.
- CVSS
- 22 / 40 · 5.5 / 10
- CISA KEV
- 0 / 30 · Listede değil
- EPSS
- 0 / 30 · %0,2
CISA SSVC kararı
- Sömürü
- yok
- Otomatikleştirilebilir
- hayır
- Teknik etki
- kısmi
Vulnrichment: CISA'nın karar ağacı girdileri.
Bu kayıt değişirse haber alın
- KEV'de değil: sahada sömürü kaydı yok
- Herkese açık istismar kodu kaydı yok
- Düzeltme yayımlandı
Bunlardan biri değişirse günlük e-posta özetinde haber veririz.
WordPress siteniz mi var? WP Lens ile ücretsiz tarayın
Noroxi analizi
Sizin ortamınızda ne anlama geliyor?
Yukarıdaki değerlendirme kaydın verisinden otomatik üretilir; ortamınızı bilmez. Bu açığın sizde gerçekten sömürülebilir olup olmadığını ve hangi önlemin yeteceğini ekibimiz sizin sistemlerinizde doğrular.
Bu ürünü kullanıyoruz, yardım isteyinEtkilenen sistemler
Sürümünüz etkileniyor mu?
Ürünü seçip kullandığınız sürümü yazın. Bu kaydın sürüm aralıklarıyla tarayıcınızda karşılaştırılır; sürüm hiçbir yere gönderilmez.
| Üretici | Ürün | CPE |
|---|---|---|
| linux | linux kernel | cpe:2.3:o:linux:linux_kernel |
Etkilenen sürümler
NVD sürüm aralıkları (katalogdaki ürünler için). Stack’inize sürümle eklerseniz eşleşme bunlarla yapılır.
- linux linux kernel6.8 ve sonrası · 6.8.8 öncesi
- linux linux kernel6.9
Ü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
- 6.8etkilenir
- 90b4fe17981e155432c4dbc490606d0c2e9c2199 ve sonrası · 048cc4a028e635d339687ed968985d2d1669494c öncesietkilenir · git
- 90b4fe17981e155432c4dbc490606d0c2e9c2199 ve sonrası · 992b54bd083c5bee24ff7cc35991388ab08598c4 öncesietkilenir · git
- 6.8 öncesietkilenmez · semver
- 6.8.8 ve sonrası · 6.8.* dahil öncesietkilenmez · semver
- 6.9 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.
| Ekosistem | Paket | Etkilenen aralık | Düzeltme |
|---|---|---|---|
| AlmaLinux:9 | bpftool | 7.3.0-427.37.1.el9_4 öncesi | 7.3.0-427.37.1.el9_4 |
| AlmaLinux:9 | kernel | 5.14.0-427.37.1.el9_4 öncesi | 5.14.0-427.37.1.el9_4 |
| AlmaLinux:9 | kernel-64k | 5.14.0-427.37.1.el9_4 öncesi | 5.14.0-427.37.1.el9_4 |
| AlmaLinux:9 | kernel-64k-core | 5.14.0-427.37.1.el9_4 öncesi | 5.14.0-427.37.1.el9_4 |
| AlmaLinux:9 | kernel-64k-debug | 5.14.0-427.37.1.el9_4 öncesi | 5.14.0-427.37.1.el9_4 |
| AlmaLinux:9 | kernel-64k-debug-core | 5.14.0-427.37.1.el9_4 öncesi | 5.14.0-427.37.1.el9_4 |
| AlmaLinux:9 | kernel-64k-debug-devel | 5.14.0-427.37.1.el9_4 öncesi | 5.14.0-427.37.1.el9_4 |
| AlmaLinux:9 | kernel-64k-debug-devel-matched | 5.14.0-427.37.1.el9_4 öncesi | 5.14.0-427.37.1.el9_4 |
| AlmaLinux:9 | kernel-64k-debug-modules | 5.14.0-427.37.1.el9_4 öncesi | 5.14.0-427.37.1.el9_4 |
| AlmaLinux:9 | kernel-64k-debug-modules-core | 5.14.0-427.37.1.el9_4 öncesi | 5.14.0-427.37.1.el9_4 |
| AlmaLinux:9 | kernel-64k-debug-modules-extra | 5.14.0-427.37.1.el9_4 öncesi | 5.14.0-427.37.1.el9_4 |
| AlmaLinux:9 | kernel-64k-devel | 5.14.0-427.37.1.el9_4 öncesi | 5.14.0-427.37.1.el9_4 |
| AlmaLinux:9 | kernel-64k-devel-matched | 5.14.0-427.37.1.el9_4 öncesi | 5.14.0-427.37.1.el9_4 |
| AlmaLinux:9 | kernel-64k-modules | 5.14.0-427.37.1.el9_4 öncesi | 5.14.0-427.37.1.el9_4 |
| AlmaLinux:9 | kernel-64k-modules-core | 5.14.0-427.37.1.el9_4 öncesi | 5.14.0-427.37.1.el9_4 |
| AlmaLinux:9 | kernel-64k-modules-extra | 5.14.0-427.37.1.el9_4 öncesi | 5.14.0-427.37.1.el9_4 |
| AlmaLinux:9 | kernel-abi-stablelists | 5.14.0-427.37.1.el9_4 öncesi | 5.14.0-427.37.1.el9_4 |
| AlmaLinux:9 | kernel-core | 5.14.0-427.37.1.el9_4 öncesi | 5.14.0-427.37.1.el9_4 |
| AlmaLinux:9 | kernel-cross-headers | 5.14.0-427.37.1.el9_4 öncesi | 5.14.0-427.37.1.el9_4 |
| AlmaLinux:9 | kernel-debug | 5.14.0-427.37.1.el9_4 öncesi | 5.14.0-427.37.1.el9_4 |
| AlmaLinux:9 | kernel-debug-core | 5.14.0-427.37.1.el9_4 öncesi | 5.14.0-427.37.1.el9_4 |
| AlmaLinux:9 | kernel-debug-devel | 5.14.0-427.37.1.el9_4 öncesi | 5.14.0-427.37.1.el9_4 |
| AlmaLinux:9 | kernel-debug-devel-matched | 5.14.0-427.37.1.el9_4 öncesi | 5.14.0-427.37.1.el9_4 |
| AlmaLinux:9 | kernel-debug-modules | 5.14.0-427.37.1.el9_4 öncesi | 5.14.0-427.37.1.el9_4 |
+96
Aynı üründe
linux: tüm kayıtlarAynı birincil ürünün en yüksek skorlu diğer kayıtları.
- CVE-2026-31431crypto: algif_aead - Revert to operating out-of-placeKEV90Hemen
- 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 KEV89Hemen
- CVE-2021-22555Heap Out-Of-Bounds Write in Netfilter IP6T_SO_SET_REPLACEKEV85Hemen
Bu üründe bundan önce ve sonra yayımlananlar
- ← ÖncekiCVE-2024-269891 May 2024 · arm64: hibernate: Fix level3 translation fault in swsusp_save()31İzleyin
- ← ÖncekiCVE-2024-269901 May 2024 · KVM: x86/mmu: Write-protect L2 SPTEs in TDP MMU when clearing dirty status22İzleyin
- Sonraki →CVE-2024-269921 May 2024 · KVM: x86/pmu: Disable support for adaptive PEBS13İzleyin
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 / paket | Düzeltilmiş sürüm | Kaynak |
|---|---|---|
| Linux Linux | 048cc4a028e635d339687ed968985d2d1669494c | Üretici (CNA) |
| Linux Linux | 992b54bd083c5bee24ff7cc35991388ab08598c4 | Üretici (CNA) |
| almalinux:bpftool | 7.3.0-427.37.1.el9_4 · AlmaLinux:9 | Paket deposu (OSV) |
| almalinux:kernel | 5.14.0-427.37.1.el9_4 · AlmaLinux:9 | Paket deposu (OSV) |
| almalinux:kernel-64k | 5.14.0-427.37.1.el9_4 · AlmaLinux:9 | Paket deposu (OSV) |
| almalinux:kernel-64k-core | 5.14.0-427.37.1.el9_4 · AlmaLinux:9 | Paket deposu (OSV) |
| almalinux:kernel-64k-debug | 5.14.0-427.37.1.el9_4 · AlmaLinux:9 | Paket deposu (OSV) |
| almalinux:kernel-64k-debug-core | 5.14.0-427.37.1.el9_4 · AlmaLinux:9 | Paket deposu (OSV) |
| almalinux:kernel-64k-debug-devel | 5.14.0-427.37.1.el9_4 · AlmaLinux:9 | Paket deposu (OSV) |
| almalinux:kernel-64k-debug-devel-matched | 5.14.0-427.37.1.el9_4 · AlmaLinux:9 | Paket deposu (OSV) |
| almalinux:kernel-64k-debug-modules | 5.14.0-427.37.1.el9_4 · AlmaLinux:9 | Paket deposu (OSV) |
| almalinux:kernel-64k-debug-modules-core | 5.14.0-427.37.1.el9_4 · AlmaLinux:9 | Paket deposu (OSV) |
| almalinux:kernel-64k-debug-modules-extra | 5.14.0-427.37.1.el9_4 · AlmaLinux:9 | Paket deposu (OSV) |
| almalinux:kernel-64k-devel | 5.14.0-427.37.1.el9_4 · AlmaLinux:9 | Paket deposu (OSV) |
| debian:linux | 6.8.9-1 · Debian:13 | Paket deposu (OSV) |
| red hat:bpftool-debuginfo | 0:7.3.0-427.37.1.el9_4 · Red Hat:enterprise_linux:9::appstream | Paket deposu (OSV) |
| red hat:kernel-64k-debug-debuginfo | 0:5.14.0-427.37.1.el9_4 · Red Hat:enterprise_linux:9::appstream | Paket deposu (OSV) |
| red hat:kernel-64k-debug-devel | 0:5.14.0-427.37.1.el9_4 · Red Hat:enterprise_linux:9::appstream | Paket deposu (OSV) |
| red hat:kernel-64k-debug-devel-matched | 0:5.14.0-427.37.1.el9_4 · Red Hat:enterprise_linux:9::appstream | Paket deposu (OSV) |
| red hat:kernel-64k-debuginfo | 0:5.14.0-427.37.1.el9_4 · Red Hat:enterprise_linux:9::appstream | Paket deposu (OSV) |
| red hat:kernel-64k-devel | 0:5.14.0-427.37.1.el9_4 · Red Hat:enterprise_linux:9::appstream | Paket deposu (OSV) |
| red hat:kernel-64k-devel-matched | 0:5.14.0-427.37.1.el9_4 · Red Hat:enterprise_linux:9::appstream | Paket deposu (OSV) |
| red hat:kernel-debug-debuginfo | 0:5.14.0-427.37.1.el9_4 · Red Hat:enterprise_linux:9::appstream | Paket deposu (OSV) |
| red hat:kernel-debug-devel | 0:5.14.0-427.37.1.el9_4 · Red Hat:enterprise_linux:9::appstream | Paket deposu (OSV) |
| red hat:kernel-debug-devel-matched | 0:5.14.0-427.37.1.el9_4 · Red Hat:enterprise_linux:9::appstream | Paket deposu (OSV) |
| red hat:kernel-debuginfo | 0:5.14.0-427.37.1.el9_4 · Red Hat:enterprise_linux:9::appstream | Paket deposu (OSV) |
| red hat:kernel-debuginfo-common-aarch64 | 0:5.14.0-427.37.1.el9_4 · Red Hat:enterprise_linux:9::appstream | Paket deposu (OSV) |
İ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.
Henüz geçmiş yok (kayıt günlük EPSS işiyle birikir).
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.
Kredi
Tüm araştırmacılarCNA kaydında adı geçen bulan, bildiren ve analistler. Ada tıklayın, aynı araştırmacının diğer kayıtlarını görün.
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.
Gece hesaplanan ilişki yok.
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.
- TR-24-0387 · 2 May 2024(Linux Kernel Güncellemesi)
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.
- Özel bir koşul gerekmez; tekrarlanabilir.
Başarılı olursa
- Gizlilik
- yok
- Bütünlük
- yok
- Erişilebilirlik
- yüksek · hizmet durdurulabilir
- Saldırı vektörü
- Yerel
- Karmaşıklık
- Düşük
- Gereken yetki
- Düşük
- Kullanıcı etkileşimi
- Gerekmez
- Kapsam
- Değişmez
- Gizlilik etkisi
- Yok
- Bütünlük etkisi
- Yok
- Erişilebilirlik etkisi
- Yüksek
Zayıflık sınıfı (CWE)
CWE-125 · Out-of-bounds ReadCVSS vektörü
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
nvd-secondary
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ı.
Saldırı desenleri (CAPEC)
ATT&CK teknikleri
—
Değişiklik günlüğü
- Düzeltme✗ → ✓
Takip ettiğiniz kayıtlarda bu değişiklikler bildirim olarak da gelir. →
Referanslar
Tüm referansları göster (4 daha)Daha az göster
- git.kernel.org/stable/c/992b54bd083c5bee24ff7cc35991388ab08598c4
- lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/4EZ6PJW7VOZ224TD7N4JZNU6KV32ZJ53/
- lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/DAMSOZXJEPUOXW33WZYWCVAY7Z5S7OOY/
- lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/GCBZZEC7L7KTWWAS2NLJK6SO3IZIL4WW/
Üretici bildirimleri ve resmî kayıtlar. İstismar/PoC bağlantıları bilinçli olarak dışarıda bırakıldı.