CVE-2021-46927 Information
Description
In the Linux kernel the following vulnerability has been resolved:
nitro_enclaves: Use get_user_pages_unlocked() call to handle mmap assert
After commit 5b78ed24e8ec (\mm/pagemap: add mmap_assert_locked() annotations to find_vma()) the call to get_user_pages() will trigger the mmap assert.
static inline void mmap_assert_locked(struct mm_struct mm)
lockdep_assert_held(&mm->mmap_lock);
VM_BUG_ON_MM(!rwsem_is_locked(&mm->mmap_lock) mm);
[ 62.521410] kernel BUG at include/linux/mmap_lock.h:156!
…………………………………………………..
[ 62.538938] RIP: 0010:find_vma+0x32/0x80
…………………………………………………..
[ 62.605889] Call Trace:
[ 62.608502]
Use get_user_pages_unlocked() when setting the enclave memory regions. That’s a similar pattern as mmap_read_lock() used together with get_user_pages().
Reference
https://git.kernel.org/stable/c/90d2beed5e753805c5eab656b8d48257638fe543 https://git.kernel.org/stable/c/3a0152b219523227c2a62a0a122cf99608287176
Share on: