mshv_vtl: Check per-CPU register page before mmap
Impact
In the Linux kernel, the following vulnerability has been resolved:
Source excerpt · LinuxAffected packages
Affected products
Vendor version evidence. Product records are separate from automatic dependency matching.
Linux · Linux
Other versions: unaffected
| Version / range | Source status |
|---|---|
| 7bfe3b8ea6e30437e01fcb8e4f56ef6e4d986d0f to before 5c0757b065fbd140d8fbd05dc2c2146b713dfa68 | affected |
| 7bfe3b8ea6e30437e01fcb8e4f56ef6e4d986d0f to before 874194a8de75fc2f4d1fb70c670b289b7e48f93e | affected |
Linux · Linux
Other versions: affected
| Version / range | Source status |
|---|---|
| 6.19 | affected |
| 0 to before 6.19 | unaffected |
| 7.2.13 through 7.2.* (inclusive) | unaffected |
| 7.3 through * (inclusive) | unaffected |
Original source description
In the Linux kernel, the following vulnerability has been resolved:
mshv_vtl: Check per-CPU register page before mmap
Register-page setup is optional for each CPU. If allocation or registration fails, mshv_vtl_configure_reg_page() warns and leaves that CPU's reg_page NULL, but initial context setup continues successfully. Meanwhile, successful setup on another CPU sets the global mshv_has_reg_page flag.
mshv_vtl_fault() checks this global flag before selecting the requested CPU's register page. With mixed setup results across online CPUs, the check passes even for a CPU with no register page, reaching get_page(NULL) when userspace faults in that mapping.
Check the selected per-CPU register page before taking its reference and return VM_FAULT_SIGBUS if it is absent.