Description
In the Linux kernel, the following vulnerability has been resolved: mm/page_owner: use memcg_data snapshot to avoid TOCTOU in print_page_owner_memcg() print_page_owner_memcg() reads page->memcg_data via READ_ONCE() at the start to guard against tail pages and NULL data. However, it later re-reads page->memcg_data locklessly in two places: 1: page_memcg_check(page) 2: PageMemcgKmem(page) (via folio_memcg_kmem(), which includes VM_BUG_ON assertions for tail pages and MEMCG_DATA_OBJEXTS) If the page is concurrently freed and reallocated as a THP tail page or slab page between these calls, the VM_BUG_ON assertions can trigger on CONFIG_DEBUG_VM=y builds, crashing the kernel. Fix both TOCTOU issues by using the memcg_data snapshot throughout.
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
Linux Linux
Default version status: unaffected
fcf8935832b86d3437f00e732c6d0d4d2819d6a9 to < e7c1923c5f30a6953f0540e3171d882ec17b05d3affectedfcf8935832b86d3437f00e732c6d0d4d2819d6a9 to < a4c940ab3f794f221a338c9431ad1ce0d73a2beaaffectedfcf8935832b86d3437f00e732c6d0d4d2819d6a9 to < 46761406e14381dc35f498c247a87565b87ea2efaffectedfcf8935832b86d3437f00e732c6d0d4d2819d6a9 to < 90f095b816e25c6a9e4446d299bac5007fdcb3dfaffected
Linux Linux
Default version status: affected
5.18affected0 to < 5.18unaffected6.6.160 to ≤ 6.6.*unaffected6.12.114 to ≤ 6.12.*unaffected7.2.4 to ≤ 7.2.*unaffected7.3 to ≤ *unaffected