Description (CNA)
In the Linux kernel, the following vulnerability has been resolved: KVM: s390: pci: Fix memory accounting for pinned/unpinned pages The account_mem() and unaccount_mem() functions call get_uid() which increments the reference count of struct user_struct on every invocation. But we don't decrement the count by calling free_uid(). It also accounted/unaccounted the pages against the current->mm. But its possible the unaccount_mem() can be called from a different process context than the one that originally pinned the pages. Let's fix this by storing the pinning process user_struct and mm_struct when accounting for pinned pages, and subsequently free these resources when the pages are unpinned. [borntraeger@linux.ibm.com: Fixed whitespace]
Affected (CNA)
| Vendor / product | Versions |
|---|---|
| Linux / Linux | affected 3c5a1b6f0a18520a0edd0600fef6f1a8553b8fdc before ad1c2ac7f15b224cf9ab26b593caa9bd1a4be72e; affected 3c5a1b6f0a18520a0edd0600fef6f1a8553b8fdc before dc7465a364104526c56b922c9de9dfcc08a7d5f7; affected 3c5a1b6f0a18520a0edd0600fef6f1a8553b8fdc before 47cfd75d9df7c8f425b0d769328fe43a8a8e606e; affected 3c5a1b6f0a18520a0edd0600fef6f1a8553b8fdc before 70871b121f81d08879363cb1238a4c85c5c2800c; affected 3c5a1b6f0a18520a0edd0600fef6f1a8553b8fdc before e3f732e086e438c52c7400bd2734bb166aa4752c; affected 3c5a1b6f0a18520a0edd0600fef6f1a8553b8fdc before 36f6999ecde3976731a8bfc0b8e667da6f593069 |
| Linux / Linux | affected 6.0; unaffected 0 before 6.0; unaffected 6.1.184 through 6.1.*; unaffected 6.6.152 through 6.6.*; unaffected 6.12.104 through 6.12.*; unaffected 6.18.44 through 6.18.*; unaffected 7.1.8 through 7.1.*; unaffected 7.2 through * |
CWE
No CWE identifiers supplied.
References
- https://git.kernel.org/stable/c/ad1c2ac7f15b224cf9ab26b593caa9bd1a4be72e
- https://git.kernel.org/stable/c/dc7465a364104526c56b922c9de9dfcc08a7d5f7
- https://git.kernel.org/stable/c/47cfd75d9df7c8f425b0d769328fe43a8a8e606e
- https://git.kernel.org/stable/c/70871b121f81d08879363cb1238a4c85c5c2800c
- https://git.kernel.org/stable/c/e3f732e086e438c52c7400bd2734bb166aa4752c
- https://git.kernel.org/stable/c/36f6999ecde3976731a8bfc0b8e667da6f593069