Description (CNA)
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 (CNA)
| Vendor / product | Versions |
|---|---|
| Linux / Linux | affected 73fa0d10d077d9521ee2dace2307ae2c9a965336 before 5a271242716846cc016736fb76be2b40ee49b0c3; affected 73fa0d10d077d9521ee2dace2307ae2c9a965336 before eafb81c50da899dd80b340c841277acc4a1945b7; affected 73fa0d10d077d9521ee2dace2307ae2c9a965336 before a6b2aabe664098d5cf877ae0fd96459464a30e17; affected 73fa0d10d077d9521ee2dace2307ae2c9a965336 before b0790dff0760b7734cf0961f497ad64628ca550b; affected 73fa0d10d077d9521ee2dace2307ae2c9a965336 before 046eca5018f8a5dd1dc2cedf87fb5843b9ea3026 |
| Linux / Linux | affected 3.6; unaffected 0 before 3.6; unaffected 5.10.173 through 5.10.*; unaffected 5.15.99 through 5.15.*; unaffected 6.1.16 through 6.1.*; unaffected 6.2.3 through 6.2.*; unaffected 6.3 through * |
CWE
No CWE identifiers supplied.
References
- https://git.kernel.org/stable/c/5a271242716846cc016736fb76be2b40ee49b0c3
- https://git.kernel.org/stable/c/eafb81c50da899dd80b340c841277acc4a1945b7
- https://git.kernel.org/stable/c/a6b2aabe664098d5cf877ae0fd96459464a30e17
- https://git.kernel.org/stable/c/b0790dff0760b7734cf0961f497ad64628ca550b
- https://git.kernel.org/stable/c/046eca5018f8a5dd1dc2cedf87fb5843b9ea3026