В ядре Linux устранена следующая уязвимость:
KVM: s390: pci: исправлен учет памяти для закрепленных/незакрепленных страниц. Функции account_mem() и unaccount_mem() вызывают get_uid(), который
увеличивает счетчик ссылок struct user_struct при каждом вызове. Но мы не уменьшаем счетчик, вызывая free_uid().
Это также
учтенные/неучтенные страницы по текущему->мм. Но это возможно
unaccount_mem() может быть вызван из контекста процесса, отличного от
тот, который изначально закреплял страницы. Давайте исправим это, сохранив процесс закрепления user_struct и mm_struct.
при учете закрепленных страниц и последующем освобождении этих ресурсов
когда страницы откреплены.
[borntraeger@linux.ibm.com: исправлены пробелы]
Показать оригинальное описание (EN)
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]