CVE-2022-49828

Summary

In the Linux kernel, the following vulnerability has been resolved:

hugetlbfs: don't delete error page from pagecache

This change is very similar to the change that was made for shmem [1], and it solves the same problem but for HugeTLBFS instead.

Currently, when poison is found in a HugeTLB page, the page is removed from the page cache. That means that attempting to map or read that hugepage in the future will result in a new hugepage being allocated instead of notifying the user that the page was poisoned. As [1] states, this is effectively memory corruption.

The fix is to leave the page in the page cache. If the user attempts to use a poisoned HugeTLB page with a syscall, the syscall will fail with EIO, the same error code that shmem uses. For attempts to map the page, the thread will get a BUS_MCEERR_AR SIGBUS.

[1]: commit a76054266661 ("mm: shmem: don't truncate page if memory failure happens")

Affected Software

VendorProductVersion RangeStatus
LinuxLinux78bb920344b8a6f04b79a7c254041723b931c94f < 30571f28bb35c826219971c63bcf60d2517112edaffected
LinuxLinux78bb920344b8a6f04b79a7c254041723b931c94f < ec667443b2dbc6cdbbac4073e51a17733158ec6aaffected
LinuxLinux78bb920344b8a6f04b79a7c254041723b931c94f < 8625147cafaa9ba74713d682f5185eb62cb2aedbaffected
LinuxLinux4.13affected
LinuxLinux0 < 4.13unaffected
LinuxLinux5.15.80 <= 5.15.*unaffected
LinuxLinux6.0.10 <= 6.0.*unaffected
LinuxLinux6.1 <= *unaffected

Weaknesses

References