mm: filemap: fix nr_pages calculation overflow in filemap_map_pages()
Noroxi değerlendirmesi
Öncelik: İzleyin (aksiyon skoru 31/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,17 (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 576543bedd616254032d4ebe54a90076f9e31740, 6.2, 6.6.135; azl3 kernel 6.6.134.1-2 on Azure Linux 3.0 6.6.137.1-1.
Şimdilik düşük öncelik. Linux Linux 576543bedd616254032d4ebe54a90076f9e31740, 6.2, 6.6.135; azl3 kernel 6.6.134.1-2 on Azure Linux 3.0 6.6.137.1-1 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: mm: filemap: fix nr_pages calculation overflow in filemap_map_pages() When running stress-ng on my Arm64 machine with v7.0-rc3 kernel, I encountered some very strange crash issues showing up as "Bad page state": " [ 734.496287] BUG: Bad page state in process stress-ng-env pfn:415735fb [ 734.496427] page: refcount:0 mapcount:1 mapping:0000000000000000 index:0x4cf316 pfn:0x415735fb [ 734.496434] flags: 0x57fffe000000800(owner_2|node=1|zone=2|lastcpupid=0x3ffff) [ 734.496439] raw: 057fffe000000800 0000000000000000 dead000000000122 0000000000000000 [ 734.496440] raw: 00000000004cf316 0000000000000000 0000000000000000 0000000000000000 [ 734.496442] page dumped because: nonzero mapcount " After analyzing this page’s state, it is hard to understand why the mapcount is not 0 while the refcount is 0, since this page is not where the issue first occurred. By enabling the CONFIG_DEBUG_VM config, I can reproduce the crash as well and captured the first warning where the issue appears: " [ 734.469226] page: refcount:33 mapcount:0 mapping:00000000bef2d187 index:0x81a0 pfn:0x415735c0 [ 734.469304] head: order:5 mapcount:0 entire_mapcount:0 nr_pages_mapped:0 pincount:0 [ 734.469315] memcg:ffff000807a8ec00 [ 734.469320] aops:ext4_da_aops ino:100b6f dentry name(?):"stress-ng-mmaptorture-9397-0-2736200540" [ 734.469335] flags: 0x57fffe400000069(locked|uptodate|lru|head|node=1|zone=2|lastcpupid=0x3ffff) ...... [ 734.469364] page dumped because: VM_WARN_ON_FOLIO((_Generic((page + nr_pages - 1), const struct page *: (const struct folio *)_compound_head(page + nr_pages - 1), struct page *: (struct folio *)_compound_head(page + nr_pages - 1))) != folio) [ 734.469390] ------------[ cut here ]------------ [ 734.469393] WARNING: ./include/linux/rmap.h:351 at folio_add_file_rmap_ptes+0x3b8/0x468, CPU#90: stress-ng-mlock/9430 [ 734.469551] folio_add_file_rmap_ptes+0x3b8/0x468 (P) [ 734.469555] set_pte_range+0xd8/0x2f8 [ 734.469566] filemap_map_folio_range+0x190/0x400 [ 734.469579] filemap_map_pages+0x348/0x638 [ 734.469583] do_fault_around+0x140/0x198 ...... [ 734.469640] el0t_64_sync+0x184/0x188 " The code that triggers the warning is: "VM_WARN_ON_FOLIO(page_folio(page + nr_pages - 1) != folio, folio)", which indicates that set_pte_range() tried to map beyond the large folio’s size. By adding more debug information, I found that 'nr_pages' had overflowed in filemap_map_pages(), causing set_pte_range() to establish mappings for a range exceeding the folio size, potentially corrupting fields of pages that do not belong to this folio (e.g., page->_mapcount). After above analysis, I think the possible race is as follows: CPU 0 CPU 1 filemap_map_pages() ext4_setattr() //get and lock folio with old inode->i_size next_uptodate_folio() ....... //shrink the inode->i_size i_size_write(inode, attr->ia_size); //calculate the end_pgoff with the new inode->i_size file_end = DIV_ROUND_UP(i_size_read(mapping->host), PAGE_SIZE) - 1; end_pgoff = min(end_pgoff, file_end); ...... //nr_pages can be overflowed, cause xas.xa_index > end_pgoff end = folio_next_index(folio) - 1; nr_pages = min(end, end_pgoff) - xas.xa_index + 1; ...... //map large folio filemap_map_folio_range() ...... //truncate folios truncate_pagecache(inode, inode->i_size); To fix this issue, move the 'end_pgoff' calculation before next_uptodate_folio(), so the retrieved folio stays consistent with the file end to avoid ---truncated---
- Yayın
- 24 Nis 2026
- Güncelleme
- 16 Eki 2026
- EPSS
- %0,1 · 6. yüzdelik
- CWE
- CWE-190
Rapor araçları
Aksiyon skoru
31
İzleyin
Şimdilik düşük öncelik.
- CVSS
- 31 / 40 · 7.8 / 10
- CISA KEV
- 0 / 30 · Listede değil
- EPSS
- 0 / 30 · %0,1
CISA SSVC kararı
- Sömürü
- yok
- Otomatikleştirilebilir
- hayır
- Teknik etki
- tam
Vulnrichment: CISA'nın karar ağacı girdileri.
CNA ile NVD puanı
- NVD
- —
- CNA · Linux
- 7,8
- NVD henüz kendi puanını vermedi; gösterilen puan CNA’nın.
Kaydı açan otoritenin puanı ile NVD’nin bağımsız puanı. İki puan arasındaki fark ciddiyetin tartışmalı olduğunu gösterir.
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.1.159 ve sonrası · 6.2 öncesi
- linux linux kernel6.6.117 ve sonrası · 6.6.135 öncesi
- linux linux kernel6.12.1 ve sonrası · 6.12.82 öncesi
- linux linux kernel6.13 ve sonrası · 6.18.23 öncesi
- linux linux kernel6.19 ve sonrası · 6.19.13 öncesi
- linux linux kernel6.12
- linux linux kernel7.0
Ü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
- 84ede15f27c06b111d1398dfa80b6fac4b135e34, 6.12etkilenir
- fe601b70eac6cd266e8d7d55030e90a73ed0e339 ve sonrası · 88591194df736a508dd5461ab2167a61e98caac1 öncesietkilenir · git
- 743a2753a02e805347969f6f89f38b736850d808 ve sonrası · 633ab680c405ac390e6bec5b74aaf46197c837b6 öncesietkilenir · git
- 743a2753a02e805347969f6f89f38b736850d808 ve sonrası · 576543bedd616254032d4ebe54a90076f9e31740 öncesietkilenir · git
- 743a2753a02e805347969f6f89f38b736850d808 ve sonrası · 9316a820b9aae07d44469d6485376dad824c5b3f öncesietkilenir · git
- 743a2753a02e805347969f6f89f38b736850d808 ve sonrası · f58df566524ebcdfa394329c64f47e3c9257516e öncesietkilenir · git
- 6.6.117 ve sonrası · 6.6.135 öncesietkilenir · semver
- 6.1.159 ve sonrası · 6.2 öncesietkilenir · semver
- 6.12 öncesietkilenmez · semver
- 6.6.135 ve sonrası · 6.6.* dahil öncesietkilenmez · semver
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 |
|---|---|---|---|
| Debian:12 | linux | tüm sürümler | — |
| Debian:13 | linux | 6.12.85-1 öncesi | 6.12.85-1 |
| Debian:14 | linux | 6.19.13-1 öncesi | 6.19.13-1 |
| openSUSE:Leap 16.0 | dtb-aarch64 | 6.12.0-160000.35.1 öncesi | 6.12.0-160000.35.1 |
| openSUSE:Leap 16.0 | kernel-64kb | 6.12.0-160000.35.1 öncesi | 6.12.0-160000.35.1 |
| openSUSE:Leap 16.0 | kernel-azure | 6.12.0-160000.35.1 öncesi | 6.12.0-160000.35.1 |
| openSUSE:Leap 16.0 | kernel-default | 6.12.0-160000.35.1 öncesi | 6.12.0-160000.35.1 |
| openSUSE:Leap 16.0 | kernel-default-base | 6.12.0-160000.35.1.160000.2.16 öncesi | 6.12.0-160000.35.1.160000.2.16 |
| openSUSE:Leap 16.0 | kernel-docs | 6.12.0-160000.35.1 öncesi | 6.12.0-160000.35.1 |
| openSUSE:Leap 16.0 | kernel-kvmsmall | 6.12.0-160000.35.1 öncesi | 6.12.0-160000.35.1 |
| openSUSE:Leap 16.0 | kernel-obs-build | 6.12.0-160000.35.1 öncesi | 6.12.0-160000.35.1 |
| openSUSE:Leap 16.0 | kernel-obs-qa | 6.12.0-160000.35.1 öncesi | 6.12.0-160000.35.1 |
| openSUSE:Leap 16.0 | kernel-rt | 6.12.0-160000.35.1 öncesi | 6.12.0-160000.35.1 |
| openSUSE:Leap 16.0 | kernel-source | 6.12.0-160000.35.1 öncesi | 6.12.0-160000.35.1 |
| openSUSE:Leap 16.0 | kernel-syms | 6.12.0-160000.35.1 öncesi | 6.12.0-160000.35.1 |
| openSUSE:Leap 16.0 | kernel-zfcpdump | 6.12.0-160000.35.1 öncesi | 6.12.0-160000.35.1 |
| SUSE:Linux Enterprise High Availability Extension 16.0 | kernel-default | 6.12.0-160000.35.1 öncesi | 6.12.0-160000.35.1 |
| SUSE:Linux Enterprise Server 16.0 | kernel-azure | 6.12.0-160000.35.1 öncesi | 6.12.0-160000.35.1 |
| SUSE:Linux Enterprise Server 16.0 | kernel-docs | 6.12.0-160000.35.1 öncesi | 6.12.0-160000.35.1 |
| SUSE:Linux Enterprise Server 16.0 | kernel-kvmsmall | 6.12.0-160000.35.1 öncesi | 6.12.0-160000.35.1 |
| SUSE:Linux Enterprise Server 16.0 | kernel-obs-qa | 6.12.0-160000.35.1 öncesi | 6.12.0-160000.35.1 |
| SUSE:Linux Enterprise Server 16.0 | kernel-zfcpdump | 6.12.0-160000.35.1 öncesi | 6.12.0-160000.35.1 |
| SUSE:Linux Micro 6.2 | kernel-64kb | 6.12.0-160000.35.1 öncesi | 6.12.0-160000.35.1 |
| SUSE:Linux Micro 6.2 | kernel-default-base | 6.12.0-160000.35.1.160000.2.16 öncesi | 6.12.0-160000.35.1.160000.2.16 |
+4
Aynı üründe
linux: tüm kayıtlarAynı 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 KEV89Hemen
- CVE-2021-22555Heap Out-Of-Bounds Write in Netfilter IP6T_SO_SET_REPLACEKEV85Hemen
- 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 haKEV83Hemen
- 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 creKEV77Bu 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 addKEV77Bu 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 loKEV77Bu 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 / paket | Düzeltilmiş sürüm | Kaynak |
|---|---|---|
| Linux Linux | 576543bedd616254032d4ebe54a90076f9e31740 | Üretici (CNA) |
| Linux Linux | 6.2 | Üretici (CNA) |
| Linux Linux | 6.6.135 | Üretici (CNA) |
| Linux Linux | 633ab680c405ac390e6bec5b74aaf46197c837b6 | Üretici (CNA) |
| Linux Linux | 88591194df736a508dd5461ab2167a61e98caac1 | Üretici (CNA) |
| Linux Linux | 9316a820b9aae07d44469d6485376dad824c5b3f | Üretici (CNA) |
| Linux Linux | f58df566524ebcdfa394329c64f47e3c9257516e | Üretici (CNA) |
| azl3 kernel 6.6.134.1-2 on Azure Linux 3.0 | 6.6.137.1-1 · CBL-Mariner Releases | Microsoft (MSRC) |
| debian:linux | 6.12.85-1 · Debian:13 | Paket deposu (OSV) |
| opensuse:dtb-aarch64 | 6.12.0-160000.35.1 · openSUSE:Leap 16.0 | Paket deposu (OSV) |
| opensuse:kernel-64kb | 6.12.0-160000.35.1 · openSUSE:Leap 16.0 | Paket deposu (OSV) |
| opensuse:kernel-azure | 6.12.0-160000.35.1 · openSUSE:Leap 16.0 | Paket deposu (OSV) |
| opensuse:kernel-default | 6.12.0-160000.35.1 · openSUSE:Leap 16.0 | Paket deposu (OSV) |
| opensuse:kernel-default-base | 6.12.0-160000.35.1.160000.2.16 · openSUSE:Leap 16.0 | Paket deposu (OSV) |
| opensuse:kernel-docs | 6.12.0-160000.35.1 · openSUSE:Leap 16.0 | Paket deposu (OSV) |
| opensuse:kernel-kvmsmall | 6.12.0-160000.35.1 · openSUSE:Leap 16.0 | Paket deposu (OSV) |
| opensuse:kernel-obs-build | 6.12.0-160000.35.1 · openSUSE:Leap 16.0 | Paket deposu (OSV) |
| opensuse:kernel-obs-qa | 6.12.0-160000.35.1 · openSUSE:Leap 16.0 | Paket deposu (OSV) |
| opensuse:kernel-rt | 6.12.0-160000.35.1 · openSUSE:Leap 16.0 | Paket deposu (OSV) |
| opensuse:kernel-source | 6.12.0-160000.35.1 · openSUSE:Leap 16.0 | Paket deposu (OSV) |
| opensuse:kernel-syms | 6.12.0-160000.35.1 · openSUSE:Leap 16.0 | Paket deposu (OSV) |
| suse:kernel-64kb | 6.12.0-160000.35.1 · SUSE:Linux Micro 6.2 | Paket deposu (OSV) |
| suse:kernel-azure | 6.12.0-160000.35.1 · SUSE:Linux Enterprise Server 16.0 | Paket deposu (OSV) |
| suse:kernel-default | 6.12.0-160000.35.1 · SUSE:Linux Enterprise High Availability Extension 16.0 | Paket deposu (OSV) |
| suse:kernel-default-base | 6.12.0-160000.35.1.160000.2.16 · SUSE:Linux Micro 6.2 | Paket deposu (OSV) |
| suse:kernel-docs | 6.12.0-160000.35.1 · SUSE:Linux Enterprise Server 16.0 | Paket deposu (OSV) |
| suse:kernel-kvmsmall | 6.12.0-160000.35.1 · SUSE:Linux Enterprise Server 16.0 | Paket deposu (OSV) |
| suse:kernel-obs-build | 6.12.0-160000.35.1 · SUSE:Linux Micro Extras 6.2 | Paket deposu (OSV) |
| suse:kernel-obs-qa | 6.12.0-160000.35.1 · SUSE:Linux Enterprise Server 16.0 | Paket deposu (OSV) |
| suse:kernel-rt | 6.12.0-160000.35.1 · SUSE:Linux Micro 6.2 | Paket deposu (OSV) |
+3
İ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.
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.
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.
- CVE-2026-316330 gün araylarxrpc: Fix integer overflow in rxgk_verify_response()39İzleyin
- CVE-2026-316490 gün araylanet: stmmac: fix integer underflow in chain mode39İzleyin
- CVE-2026-4603933 gün araylarxgk: Fix potential integer overflow in length check39İzleyin
- CVE-2026-4619834 gün araylabatman-adv: fix integer overflow on buff_pos35İzleyin
- CVE-2026-6431392 gün araylacrypto: ecc - Fix carry overflow in vli multiplication35İzleyin
- CVE-2026-4606233 gün araylantfs3: fix integer overflow in run_unpack() volume boundary check31İ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).
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
- 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
- Düşük
- 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
Zayıflık sınıfı (CWE)
CWE-190 · Integer Overflow or WraparoundCVSS vektörü
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/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üğü
- SSVC sömürü— → none
- 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
Üretici bildirimleri ve resmî kayıtlar. İstismar/PoC bağlantıları bilinçli olarak dışarıda bırakıldı.