CVE-2025-38407
BaseFortify
Publication date: 2025-07-25
Last updated on: 2025-11-19
Assigner: kernel.org
Description
Description
CVSS Scores
EPSS Scores
| Probability: | |
| Percentile: |
Meta Information
Affected Vendors & Products
| Vendor | Product | Version / Range |
|---|---|---|
| linux | linux_kernel | 6.16 |
| linux | linux_kernel | 6.16 |
| linux | linux_kernel | 6.16 |
| linux | linux_kernel | 6.16 |
| linux | linux_kernel | From 5.15.160 (inc) to 5.16 (inc) |
| linux | linux_kernel | From 5.15.160 (inc) to 5.16 (inc) |
Helpful Resources
Exploitability
| CWE ID | Description |
|---|---|
| CWE-NVD-CWE-noinfo |
Attack-Flow Graph
AI Powered Q&A
Can you explain this vulnerability to me?
This vulnerability occurs in the Linux kernel on RISC-V architectures when NUMA (Non-Uniform Memory Access) is enabled and the percpu allocator uses pages. The function sbi_hsm_hart_start() expects a physical address for sbi_hart_boot_data but incorrectly assumes that the __pa() macro works for data placed in the vmalloc area, leading to the hart accessing an invalid address and hanging during boot. The fix involves allocating the boot_data array statically in the kernel image to ensure a valid physical address is used.
How can this vulnerability impact me? :
This vulnerability can cause the system to hang during the boot process on RISC-V systems with NUMA enabled and percpu_alloc=page set. Specifically, secondary CPUs (harts) may fail to start properly, resulting in reduced CPU availability or a system that does not fully boot, impacting system stability and availability.
How can this vulnerability be detected on my network or system? Can you suggest some commands?
This vulnerability can be detected by observing kernel boot logs for specific error messages related to percpu allocation and invalid physical address access on RISC-V systems with NUMA enabled. Look for kernel warnings such as 'virt_to_phys used for non-linear address' and tracebacks involving __virt_to_phys and sbi_cpu_start. To detect this, you can check the kernel log using the command: dmesg | grep -i 'virt_to_phys' or dmesg | grep -i 'sbi_cpu_start'. Additionally, verifying kernel configuration options CONFIG_NUMA=y and CONFIG_DEBUG_VIRTUAL=y can help identify vulnerable setups.
What immediate steps should I take to mitigate this vulnerability?
Immediate mitigation involves updating the Linux kernel to a version that includes the fix for this issue, which involves using a static array for boot_data to avoid invalid physical address access. If updating is not immediately possible, disabling NUMA (CONFIG_NUMA) or avoiding the use of percpu_alloc=page on boot may prevent the issue from occurring. Monitoring kernel boot logs for the described errors can also help in early detection until a patch is applied.