CVE-2026-23416
Incorrect VMA End Handling in Linux Kernel Memory Management
Publication date: 2026-04-02
Last updated on: 2026-04-24
Assigner: kernel.org
Description
Description
CVSS Scores
EPSS Scores
| Probability: | |
| Percentile: |
Meta Information
Affected Vendors & Products
| Vendor | Product | Version / Range |
|---|---|---|
| linux | linux_kernel | 6.17 |
| linux | linux_kernel | 7.0 |
| linux | linux_kernel | 7.0 |
| linux | linux_kernel | 7.0 |
| linux | linux_kernel | 7.0 |
| linux | linux_kernel | 7.0 |
| linux | linux_kernel | 7.0 |
| linux | linux_kernel | 7.0 |
| linux | linux_kernel | From 6.19 (inc) to 6.19.11 (exc) |
| linux | linux_kernel | From 6.17.1 (inc) to 6.18.21 (exc) |
Helpful Resources
Exploitability
| CWE ID | Description |
|---|---|
| CWE-UNKNOWN |
Attack-Flow Graph
AI Powered Q&A
Can you explain this vulnerability to me?
This vulnerability is related to the Linux kernel's memory management, specifically in the mm/mseal component. The issue arises from how the end of the current Virtual Memory Area (VMA) was tracked during iteration. Previously, the code stored the end of the current VMA in a variable called curr_end and then updated the start of the next VMA (curr_start) to this value. However, if a VMA was modified and merged by the function vma_modify_flags(), curr_end could become outdated (stale). This caused curr_start to be set incorrectly on the next iteration, potentially leading to errors in memory area handling.
The fix involved always updating curr_end to the current VMA's vm_end value unconditionally, ensuring it remains accurate even after merges. Additionally, the logic was simplified by clamping curr_start and curr_end to the input range and VMAs, eliminating this class of bugs.
How can this vulnerability impact me? :
This vulnerability in the Linux kernel's memory management subsystem could lead to incorrect handling of virtual memory areas (VMAs) during iteration and merging. Specifically, the end address of a VMA might be stale, causing the next VMA's start address to be set incorrectly. This can result in improper memory management behavior, potentially leading to system instability or unexpected behavior in applications relying on accurate memory mappings.