Description
In the Linux kernel, the following vulnerability has been resolved: alpha: fix user-space corruption during memory compaction Alpha systems can suffer sporadic user-space crashes and heap corruption when memory compaction is enabled. Symptoms include SIGSEGV, glibc allocator failures (e.g. "unaligned tcache chunk"), and compiler internal errors. The failures disappear when compaction is disabled or when using global TLB invalidation. The root cause is insufficient TLB shootdown during page migration. Alpha relies on ASN-based MM context rollover for instruction cache coherency, but this alone is not sufficient to prevent stale data or instruction translations from surviving migration. Fix this by introducing a migration-specific helper that combines: - MM context invalidation (ASN rollover), - immediate per-CPU TLB invalidation (TBI), - synchronous cross-CPU shootdown when required. The helper is used only by migration/compaction paths to avoid changing global TLB semantics. Additionally, update flush_tlb_other(), pte_clear(), to use READ_ONCE()/WRITE_ONCE() for correct SMP memory ordering. This fixes observed crashes on both UP and SMP Alpha systems.
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
a48d07afdf18212de22b959715b16793c5a6e57a to < 01cddfc34bf2a813a2773f1d607305515be55409affecteda48d07afdf18212de22b959715b16793c5a6e57a to < 5593c9b255ae73f57a8b5e696a660032acbd67daaffecteda48d07afdf18212de22b959715b16793c5a6e57a to < d4ca6ca2c6f5a1d19d9014c5b36d96637846b5d6affecteda48d07afdf18212de22b959715b16793c5a6e57a to < 03e42b5f7ad4c2c3db8bd384bab7990d5d53c90faffecteda48d07afdf18212de22b959715b16793c5a6e57a to < bab8d762a8dbb816b10011e13b87d1bca91e5f77affecteda48d07afdf18212de22b959715b16793c5a6e57a to < dd5712f3379cfe760267cdd28ff957d9ab4e51c7affected
Linux Linux
Default version status: affected
2.6.16affected0 to < 2.6.16unaffected6.1.191 to ≤ 6.1.*unaffected6.6.160 to ≤ 6.6.*unaffected6.12.75 to ≤ 6.12.*unaffected6.18.16 to ≤ 6.18.*unaffected6.19.6 to ≤ 6.19.*unaffected7.0 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/01cddfc34bf2a813a2773f1d607305515be55409 ↗
- https://git.kernel.org/stable/c/5593c9b255ae73f57a8b5e696a660032acbd67da ↗
- https://git.kernel.org/stable/c/d4ca6ca2c6f5a1d19d9014c5b36d96637846b5d6 ↗
- https://git.kernel.org/stable/c/03e42b5f7ad4c2c3db8bd384bab7990d5d53c90f ↗
- https://git.kernel.org/stable/c/bab8d762a8dbb816b10011e13b87d1bca91e5f77 ↗
- https://git.kernel.org/stable/c/dd5712f3379cfe760267cdd28ff957d9ab4e51c7 ↗