CVE-2023-53171

Summary

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

vfio/type1: prevent underflow of locked_vm via exec()

When a vfio container is preserved across exec, the task does not change, but it gets a new mm with locked_vm=0, and loses the count from existing dma mappings. If the user later unmaps a dma mapping, locked_vm underflows to a large unsigned value, and a subsequent dma map request fails with ENOMEM in __account_locked_vm.

To avoid underflow, grab and save the mm at the time a dma is mapped. Use that mm when adjusting locked_vm, rather than re-acquiring the saved task's mm, which may have changed. If the saved mm is dead, do nothing.

locked_vm is incremented for existing mappings in a subsequent patch.

Affected Software

VendorProductVersion RangeStatus
LinuxLinux73fa0d10d077d9521ee2dace2307ae2c9a965336 < 5a271242716846cc016736fb76be2b40ee49b0c3affected
LinuxLinux73fa0d10d077d9521ee2dace2307ae2c9a965336 < eafb81c50da899dd80b340c841277acc4a1945b7affected
LinuxLinux73fa0d10d077d9521ee2dace2307ae2c9a965336 < a6b2aabe664098d5cf877ae0fd96459464a30e17affected
LinuxLinux73fa0d10d077d9521ee2dace2307ae2c9a965336 < b0790dff0760b7734cf0961f497ad64628ca550baffected
LinuxLinux73fa0d10d077d9521ee2dace2307ae2c9a965336 < 046eca5018f8a5dd1dc2cedf87fb5843b9ea3026affected
LinuxLinux3.6affected
LinuxLinux0 < 3.6unaffected
LinuxLinux5.10.173 <= 5.10.*unaffected
LinuxLinux5.15.99 <= 5.15.*unaffected
LinuxLinux6.1.16 <= 6.1.*unaffected
LinuxLinux6.2.3 <= 6.2.*unaffected
LinuxLinux6.3 <= *unaffected

Weaknesses

References