Linux kernel
cpe:2.3:a:linux:linux_kernel:*:*:*:*:*:*:*, +4 more
A vulnerability in the Linux kernel's memory management related to virtual memory areas (VMAs) has been addressed. The issue arose in the 'unuse_mm()' function, which is part of the swapoff process. A race condition between the 'fork()' system call and the swapoff operation could lead to a NULL pointer dereference. This occurs when 'fork()' creates a new process and the swapoff operation simultaneously accesses VMAs, potentially hitting a zero entry that causes a kernel crash. The vulnerability was introduced when the maple tree was duplicated during the 'fork()' process, and a fatal signal interrupted the VMA duplication, leaving the VMA range marked as zero. When 'swapoff' attempted to process this VMA, it encountered the zero entry, leading to the crash.
Exploitation of this vulnerability causes a kernel panic due to a NULL pointer dereference, disrupting system operations and potentially leading to a denial of service.
The vulnerability can be reproduced by creating a process that forks and simultaneously initiates a swapoff operation. This can be done by sending a fatal signal to the parent process during the fork, which interrupts the VMA duplication process. As a result, the VMA range is marked with a zero entry. When 'swapoff' is performed on this process, it accesses the zero entry as if it were a valid VMA, causing a NULL pointer dereference and a kernel crash.
The vulnerability has been fixed by adding a check for stable address space before the 'unuse_mm()' function processes VMAs. This ensures that only fully initialized memory structures are accessed, preventing the NULL pointer dereference. Users should update to the latest version of the Linux kernel where this fix has been applied.
Our algorithm analyzes dozens of metrics to generate these 8 key vulnerability categories, which are then combined to calculate the overall risk score.