Linux's 32-Bit Kernel Has Been Buggy Since Being Mitigated For Meltdown
![LINUX KERNEL](/assets/categories/linuxkernel.webp)
Not only did it take months after Intel's Meltdown vulnerability was published (and x86_64 being mitigated) to see Linux KPTI support for x86 32-bit to mitigate Meltdown (from January's disclosure to mainline readiness in July), but it turns out it ended up exposing a 32-bit only bug that has lived in the kernel from summer 2018 until now with the Linux 5.3.
I/O TLB mapping problems on x86 32-bit were exposed by the Kernel Page-Table Isolation support. The result is undefined behavior within the kernel that could yield data corruption, kernel oopses/panics, and spontaneous reboots.
There have been bug reports of random lockups or reboots on 32-bit caused by KPTI being introduced going back to at least last December. While now as of today Linux 5.3 Git ahead of the 5.3-rc2 tagging has a fix.
The kernel's vmalloc code is now actively syncing unmaps to all page-tables in the system before the regions can be re-used, which should address this 32-bit undefined behavior that has persisted the past year on Meltdown mitigated x86-32 kernels. The fix will be there for Linux 5.3-rc2 and presumably be back-ported in short order to stable series.
90 Comments