Upstream information

CVE-2024-53079 at MITRE

Description

In the Linux kernel, the following vulnerability has been resolved:

mm/thp: fix deferred split unqueue naming and locking

Recent changes are putting more pressure on THP deferred split queues:
under load revealing long-standing races, causing list_del corruptions,
"Bad page state"s and worse (I keep BUGs in both of those, so usually
don't get to see how badly they end up without). The relevant recent
changes being 6.8's mTHP, 6.10's mTHP swapout, and 6.12's mTHP swapin,
improved swap allocation, and underused THP splitting.

Before fixing locking: rename misleading folio_undo_large_rmappable(),
which does not undo large_rmappable, to folio_unqueue_deferred_split(),
which is what it does. But that and its out-of-line __callee are mm
internals of very limited usability: add comment and WARN_ON_ONCEs to
check usage; and return a bool to say if a deferred split was unqueued,
which can then be used in WARN_ON_ONCEs around safety checks (sparing
callers the arcane conditionals in __folio_unqueue_deferred_split()).

Just omit the folio_unqueue_deferred_split() from free_unref_folios(), all
of whose callers now call it beforehand (and if any forget then bad_page()
will tell) - except for its caller put_pages_list(), which itself no
longer has any callers (and will be deleted separately).

Swapout: mem_cgroup_swapout() has been resetting folio->memcg_data 0
without checking and unqueueing a THP folio from deferred split list;
which is unfortunate, since the split_queue_lock depends on the memcg
(when memcg is enabled); so swapout has been unqueueing such THPs later,
when freeing the folio, using the pgdat's lock instead: potentially
corrupting the memcg's list. __remove_mapping() has frozen refcount to 0
here, so no problem with calling folio_unqueue_deferred_split() before
resetting memcg_data.

That goes back to 5.4 commit 87eaceb3faa5 ("mm: thp: make deferred split
shrinker memcg aware"): which included a check on swapcache before adding
to deferred queue, but no check on deferred queue before adding THP to
swapcache. That worked fine with the usual sequence of events in reclaim
(though there were a couple of rare ways in which a THP on deferred queue
could have been swapped out), but 6.12 commit dafff3f4c850 ("mm: split
underused THPs") avoids splitting underused THPs in reclaim, which makes
swapcache THPs on deferred queue commonplace.

Keep the check on swapcache before adding to deferred queue? Yes: it is
no longer essential, but preserves the existing behaviour, and is likely
to be a worthwhile optimization (vmstat showed much more traffic on the
queue under swapping load if the check was removed); update its comment.

Memcg-v1 move (deprecated): mem_cgroup_move_account() has been changing
folio->memcg_data without checking and unqueueing a THP folio from the
deferred list, sometimes corrupting "from" memcg's list, like swapout.
Refcount is non-zero here, so folio_unqueue_deferred_split() can only be
used in a WARN_ON_ONCE to validate the fix, which must be done earlier:
mem_cgroup_move_charge_pte_range() first try to split the THP (splitting
of course unqueues), or skip it if that fails. Not ideal, but moving
charge has been requested, and khugepaged should repair the THP later:
nobody wants new custom unqueueing code just for this deprecated case.

The 87eaceb3faa5 commit did have the code to move from one deferred list
to another (but was not conscious of its unsafety while refcount non-0);
but that was removed by 5.6 commit fac0516b5534 ("mm: thp: don't need care
deferred split queue in memcg charge move path"), which argued that the
existence of a PMD mapping guarantees that the THP cannot be on a deferred
list. As above, false in rare cases, and now commonly false.

Backport to 6.11 should be straightforward. Earlier backports must take
care that other _deferred_list fixes and dependencies are included. There
is not a strong case for backports, but they can fix cornercases.

SUSE information

Overall state of this security issue: Pending

This issue is currently rated as having low severity.

CVSS v3 Scores
  National Vulnerability Database SUSE
Base Score 5.5 3.3
Vector CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:L
Attack Vector Local Local
Attack Complexity Low Low
Privileges Required Low Low
User Interaction None None
Scope Unchanged Unchanged
Confidentiality Impact None None
Integrity Impact None None
Availability Impact High Low
CVSSv3 Version 3.1 3.1
SUSE Bugzilla entry: 1233570 [NEW]

No SUSE Security Announcements cross referenced.


Status of this issue by product and package

Please note that this evaluation state might be work in progress, incomplete or outdated. Also information for service packs in the LTSS phase is only included for issues meeting the LTSS criteria. If in doubt, feel free to contact us for clarification. The updates are grouped by state of their lifecycle. SUSE product lifecycles are documented on the lifecycle page.

Product(s) Source package State
Products under general support and receiving all security fixes.
SUSE Linux Enterprise Desktop 15 SP5 kernel-default Affected
SUSE Linux Enterprise Desktop 15 SP5 kernel-source Affected
SUSE Linux Enterprise Desktop 15 SP6 kernel-default Affected
SUSE Linux Enterprise Desktop 15 SP6 kernel-source In progress
SUSE Linux Enterprise High Performance Computing 15 SP5 kernel-default Affected
SUSE Linux Enterprise High Performance Computing 15 SP5 kernel-source Affected
SUSE Linux Enterprise High Performance Computing 15 SP5 kernel-source-azure Affected
SUSE Linux Enterprise High Performance Computing 15 SP6 kernel-default Affected
SUSE Linux Enterprise High Performance Computing 15 SP6 kernel-source In progress
SUSE Linux Enterprise High Performance Computing 15 SP6 kernel-source-azure In progress
SUSE Linux Enterprise Live Patching 15 SP5 kernel-default Affected
SUSE Linux Enterprise Live Patching 15 SP5 kernel-source Affected
SUSE Linux Enterprise Live Patching 15 SP6 kernel-default Affected
SUSE Linux Enterprise Live Patching 15 SP6 kernel-source Affected
SUSE Linux Enterprise Micro 5.1 kernel-default Not affected
SUSE Linux Enterprise Micro 5.1 kernel-rt Not affected
SUSE Linux Enterprise Micro 5.1 kernel-source Not affected
SUSE Linux Enterprise Micro 5.1 kernel-source-rt Not affected
SUSE Linux Enterprise Micro 5.2 kernel-default Not affected
SUSE Linux Enterprise Micro 5.2 kernel-rt Not affected
SUSE Linux Enterprise Micro 5.2 kernel-source Not affected
SUSE Linux Enterprise Micro 5.2 kernel-source-rt Not affected
SUSE Linux Enterprise Micro 5.3 kernel-default Affected
SUSE Linux Enterprise Micro 5.3 kernel-rt Affected
SUSE Linux Enterprise Micro 5.3 kernel-source Affected
SUSE Linux Enterprise Micro 5.3 kernel-source-rt Affected
SUSE Linux Enterprise Micro 5.4 kernel-default Affected
SUSE Linux Enterprise Micro 5.4 kernel-rt Affected
SUSE Linux Enterprise Micro 5.4 kernel-source Affected
SUSE Linux Enterprise Micro 5.4 kernel-source-rt Affected
SUSE Linux Enterprise Micro 5.5 kernel-default Affected
SUSE Linux Enterprise Micro 5.5 kernel-source Affected
SUSE Linux Enterprise Micro 5.5 kernel-source-rt Affected
SUSE Linux Enterprise Micro 6.0 kernel-default Not affected
SUSE Linux Enterprise Micro 6.0 kernel-source Not affected
SUSE Linux Enterprise Micro 6.0 kernel-source-rt Not affected
SUSE Linux Enterprise Module for Basesystem 15 SP5 kernel-default Affected
SUSE Linux Enterprise Module for Basesystem 15 SP5 kernel-source Affected
SUSE Linux Enterprise Module for Basesystem 15 SP6 kernel-default Affected
SUSE Linux Enterprise Module for Basesystem 15 SP6 kernel-source In progress
SUSE Linux Enterprise Module for Development Tools 15 SP5 kernel-default Affected
SUSE Linux Enterprise Module for Development Tools 15 SP5 kernel-source Affected
SUSE Linux Enterprise Module for Development Tools 15 SP6 kernel-default Affected
SUSE Linux Enterprise Module for Development Tools 15 SP6 kernel-source In progress
SUSE Linux Enterprise Module for Public Cloud 15 SP5 kernel-source-azure Affected
SUSE Linux Enterprise Module for Public Cloud 15 SP6 kernel-source-azure In progress
SUSE Linux Enterprise Real Time 15 SP5 kernel-source-rt Affected
SUSE Linux Enterprise Real Time 15 SP6 kernel-source-rt Affected
SUSE Linux Enterprise Server 15 SP5 kernel-default Affected
SUSE Linux Enterprise Server 15 SP5 kernel-source Affected
SUSE Linux Enterprise Server 15 SP5 kernel-source-azure Affected
SUSE Linux Enterprise Server 15 SP6 kernel-default Affected
SUSE Linux Enterprise Server 15 SP6 kernel-source In progress
SUSE Linux Enterprise Server 15 SP6 kernel-source-azure In progress
SUSE Linux Enterprise Server for SAP Applications 15 SP5 kernel-default Affected
SUSE Linux Enterprise Server for SAP Applications 15 SP5 kernel-source Affected
SUSE Linux Enterprise Server for SAP Applications 15 SP5 kernel-source-azure Affected
SUSE Linux Enterprise Server for SAP Applications 15 SP6 kernel-default Affected
SUSE Linux Enterprise Server for SAP Applications 15 SP6 kernel-source In progress
SUSE Linux Enterprise Server for SAP Applications 15 SP6 kernel-source-azure In progress
SUSE Manager Proxy 4.3 kernel-default Affected
SUSE Manager Proxy 4.3 kernel-source Affected
SUSE Manager Retail Branch Server 4.3 kernel-default Affected
SUSE Manager Retail Branch Server 4.3 kernel-source Affected
SUSE Manager Server 4.3 kernel-default Affected
SUSE Manager Server 4.3 kernel-source Affected
SUSE Real Time Module 15 SP5 kernel-source-rt Affected
SUSE Real Time Module 15 SP6 kernel-source-rt Affected
openSUSE Leap 15.5 kernel-default Affected
openSUSE Leap 15.5 kernel-source Affected
openSUSE Leap 15.5 kernel-source-azure Affected
openSUSE Leap 15.5 kernel-source-rt Affected
openSUSE Leap 15.6 kernel-default Affected
openSUSE Leap 15.6 kernel-source In progress
openSUSE Leap 15.6 kernel-source-azure In progress
openSUSE Leap 15.6 kernel-source-rt In progress
Products under Long Term Service Pack support and receiving important and critical security fixes.
SUSE Linux Enterprise Desktop 15 SP4 kernel-source Affected
SUSE Linux Enterprise High Availability Extension 12 SP5 kernel-default Not affected
SUSE Linux Enterprise High Availability Extension 12 SP5 kernel-source Not affected
SUSE Linux Enterprise High Performance Computing 15 SP2 kernel-source Not affected
SUSE Linux Enterprise High Performance Computing 15 SP2-ESPOS kernel-source Not affected
SUSE Linux Enterprise High Performance Computing 15 SP2-LTSS kernel-default Not affected
SUSE Linux Enterprise High Performance Computing 15 SP2-LTSS kernel-source Not affected
SUSE Linux Enterprise High Performance Computing 15 SP3 kernel-source Not affected
SUSE Linux Enterprise High Performance Computing 15 SP3-ESPOS kernel-source Not affected
SUSE Linux Enterprise High Performance Computing 15 SP3-LTSS kernel-default Not affected
SUSE Linux Enterprise High Performance Computing 15 SP3-LTSS kernel-source Not affected
SUSE Linux Enterprise High Performance Computing 15 SP4 kernel-source Affected
SUSE Linux Enterprise High Performance Computing 15 SP4-ESPOS kernel-default Affected
SUSE Linux Enterprise High Performance Computing 15 SP4-ESPOS kernel-source Affected
SUSE Linux Enterprise High Performance Computing 15 SP4-LTSS kernel-default Affected
SUSE Linux Enterprise High Performance Computing 15 SP4-LTSS kernel-source Affected
SUSE Linux Enterprise Live Patching 12 SP5 kernel-default Not affected
SUSE Linux Enterprise Live Patching 12 SP5 kernel-source Not affected
SUSE Linux Enterprise Live Patching 15 SP2 kernel-default Not affected
SUSE Linux Enterprise Live Patching 15 SP2 kernel-source Not affected
SUSE Linux Enterprise Live Patching 15 SP3 kernel-default Not affected
SUSE Linux Enterprise Live Patching 15 SP3 kernel-source Not affected
SUSE Linux Enterprise Live Patching 15 SP4 kernel-default Affected
SUSE Linux Enterprise Live Patching 15 SP4 kernel-source Affected
SUSE Linux Enterprise Module for Basesystem 15 SP2 kernel-source Not affected
SUSE Linux Enterprise Module for Basesystem 15 SP3 kernel-source Not affected
SUSE Linux Enterprise Module for Basesystem 15 SP4 kernel-source Affected
SUSE Linux Enterprise Module for Development Tools 15 SP2 kernel-source Not affected
SUSE Linux Enterprise Module for Development Tools 15 SP3 kernel-source Not affected
SUSE Linux Enterprise Module for Development Tools 15 SP4 kernel-source Affected
SUSE Linux Enterprise Server 11 SP4 LTSS EXTREME CORE kernel-default Not affected
SUSE Linux Enterprise Server 11 SP4 LTSS EXTREME CORE kernel-source Not affected
SUSE Linux Enterprise Server 12 SP5 kernel-source Not affected
SUSE Linux Enterprise Server 12 SP5 kernel-source-azure Affected
SUSE Linux Enterprise Server 12 SP5-LTSS kernel-default Not affected
SUSE Linux Enterprise Server 12 SP5-LTSS kernel-source Not affected
SUSE Linux Enterprise Server 12 SP5-LTSS kernel-source-azure Affected
SUSE Linux Enterprise Server 15 SP2 kernel-source Not affected
SUSE Linux Enterprise Server 15 SP2-LTSS kernel-default Not affected
SUSE Linux Enterprise Server 15 SP2-LTSS kernel-source Not affected
SUSE Linux Enterprise Server 15 SP3 kernel-source Not affected
SUSE Linux Enterprise Server 15 SP3-LTSS kernel-default Not affected
SUSE Linux Enterprise Server 15 SP3-LTSS kernel-source Not affected
SUSE Linux Enterprise Server 15 SP4 kernel-source Affected
SUSE Linux Enterprise Server 15 SP4-LTSS kernel-default Affected
SUSE Linux Enterprise Server 15 SP4-LTSS kernel-source Affected
SUSE Linux Enterprise Server LTSS Extended Security 12 SP5 kernel-source Not affected
SUSE Linux Enterprise Server LTSS Extended Security 12 SP5 kernel-source-azure Affected
SUSE Linux Enterprise Server for SAP Applications 12 SP5 kernel-default Not affected
SUSE Linux Enterprise Server for SAP Applications 12 SP5 kernel-source Not affected
SUSE Linux Enterprise Server for SAP Applications 15 SP2 kernel-default Not affected
SUSE Linux Enterprise Server for SAP Applications 15 SP2 kernel-source Not affected
SUSE Linux Enterprise Server for SAP Applications 15 SP3 kernel-default Not affected
SUSE Linux Enterprise Server for SAP Applications 15 SP3 kernel-source Not affected
SUSE Linux Enterprise Server for SAP Applications 15 SP4 kernel-default Affected
SUSE Linux Enterprise Server for SAP Applications 15 SP4 kernel-source Affected
Products past their end of life and not receiving proactive updates anymore.
HPE Helion OpenStack 8 kernel-source Not affected
SUSE CaaS Platform 4.0 kernel-source Not affected
SUSE CaaS Platform Toolchain 3 kernel-source Not affected
SUSE Enterprise Storage 6 kernel-source Not affected
SUSE Enterprise Storage 7 kernel-source Not affected
SUSE Enterprise Storage 7.1 kernel-source Not affected
SUSE Linux Enterprise Desktop 11 SP4 kernel-source Not affected
SUSE Linux Enterprise Desktop 12 SP1 kernel-source Not affected
SUSE Linux Enterprise Desktop 12 SP2 kernel-source Not affected
SUSE Linux Enterprise Desktop 12 SP3 kernel-source Not affected
SUSE Linux Enterprise Desktop 12 SP4 kernel-source Not affected
SUSE Linux Enterprise Desktop 15 kernel-source Not affected
SUSE Linux Enterprise Desktop 15 SP1 kernel-source Not affected
SUSE Linux Enterprise Desktop 15 SP2 kernel-source Not affected
SUSE Linux Enterprise Desktop 15 SP3 kernel-source Not affected
SUSE Linux Enterprise High Performance Computing 15 kernel-source Not affected
SUSE Linux Enterprise High Performance Computing 15 SP1 kernel-source Not affected
SUSE Linux Enterprise High Performance Computing 15 SP1-ESPOS kernel-source Not affected
SUSE Linux Enterprise High Performance Computing 15 SP1-LTSS kernel-source Not affected
SUSE Linux Enterprise High Performance Computing 15-ESPOS kernel-source Not affected
SUSE Linux Enterprise High Performance Computing 15-LTSS kernel-source Not affected
SUSE Linux Enterprise Micro 5.0 kernel-default Not affected
SUSE Linux Enterprise Module for Basesystem 15 kernel-source Not affected
SUSE Linux Enterprise Module for Basesystem 15 SP1 kernel-source Not affected
SUSE Linux Enterprise Module for Development Tools 15 kernel-source Not affected
SUSE Linux Enterprise Module for Development Tools 15 SP1 kernel-source Not affected
SUSE Linux Enterprise Point of Sale 12 SP2-CLIENT kernel-source Not affected
SUSE Linux Enterprise Real Time 15 SP2 kernel-source Not affected
SUSE Linux Enterprise Real Time 15 SP3 kernel-source Not affected
SUSE Linux Enterprise Real Time 15 SP3 kernel-source-rt Not affected
SUSE Linux Enterprise Real Time 15 SP4 kernel-source Affected
SUSE Linux Enterprise Real Time 15 SP4 kernel-source-rt Affected
SUSE Linux Enterprise Server 11 SP4 kernel-source Not affected
SUSE Linux Enterprise Server 11 SP4 LTSS kernel-default Not affected
SUSE Linux Enterprise Server 11 SP4 LTSS kernel-source Not affected
SUSE Linux Enterprise Server 11 SP4-LTSS kernel-source Not affected
SUSE Linux Enterprise Server 12 SP1 kernel-source Not affected
SUSE Linux Enterprise Server 12 SP1-LTSS kernel-source Not affected
SUSE Linux Enterprise Server 12 SP2 kernel-source Not affected
SUSE Linux Enterprise Server 12 SP2-BCL kernel-source Not affected
SUSE Linux Enterprise Server 12 SP2-ESPOS kernel-source Not affected
SUSE Linux Enterprise Server 12 SP2-LTSS kernel-default Not affected
SUSE Linux Enterprise Server 12 SP2-LTSS kernel-source Not affected
SUSE Linux Enterprise Server 12 SP3 kernel-source Not affected
SUSE Linux Enterprise Server 12 SP3-BCL kernel-source Not affected
SUSE Linux Enterprise Server 12 SP3-ESPOS kernel-source Not affected
SUSE Linux Enterprise Server 12 SP3-LTSS kernel-source Not affected
SUSE Linux Enterprise Server 12 SP4 kernel-source Not affected
SUSE Linux Enterprise Server 12 SP4-ESPOS kernel-source Not affected
SUSE Linux Enterprise Server 12 SP4-LTSS kernel-default Not affected
SUSE Linux Enterprise Server 12 SP4-LTSS kernel-source Not affected
SUSE Linux Enterprise Server 15 kernel-source Not affected
SUSE Linux Enterprise Server 15 SP1 kernel-source Not affected
SUSE Linux Enterprise Server 15 SP1-BCL kernel-source Not affected
SUSE Linux Enterprise Server 15 SP1-LTSS kernel-default Not affected
SUSE Linux Enterprise Server 15 SP1-LTSS kernel-source Not affected
SUSE Linux Enterprise Server 15 SP2-BCL kernel-source Not affected
SUSE Linux Enterprise Server 15 SP3-BCL kernel-source Not affected
SUSE Linux Enterprise Server 15-LTSS kernel-default Not affected
SUSE Linux Enterprise Server 15-LTSS kernel-source Not affected
SUSE Linux Enterprise Server for Raspberry Pi 12 SP2 kernel-source Not affected
SUSE Linux Enterprise Server for SAP Applications 12 SP1 kernel-source Not affected
SUSE Linux Enterprise Server for SAP Applications 12 SP2 kernel-source Not affected
SUSE Linux Enterprise Server for SAP Applications 12 SP3 kernel-source Not affected
SUSE Linux Enterprise Server for SAP Applications 12 SP4 kernel-source Not affected
SUSE Linux Enterprise Server for SAP Applications 15 kernel-source Not affected
SUSE Linux Enterprise Server for SAP Applications 15 SP1 kernel-source Not affected
SUSE Manager Proxy 4.0 kernel-source Not affected
SUSE Manager Proxy 4.1 kernel-source Not affected
SUSE Manager Proxy 4.2 kernel-source Not affected
SUSE Manager Retail Branch Server 4.0 kernel-source Not affected
SUSE Manager Retail Branch Server 4.1 kernel-source Not affected
SUSE Manager Retail Branch Server 4.2 kernel-source Not affected
SUSE Manager Server 4.0 kernel-source Not affected
SUSE Manager Server 4.1 kernel-source Not affected
SUSE Manager Server 4.2 kernel-source Not affected
SUSE OpenStack Cloud 7 kernel-source Not affected
SUSE OpenStack Cloud 8 kernel-source Not affected
SUSE OpenStack Cloud 9 kernel-source Not affected
SUSE OpenStack Cloud Crowbar 8 kernel-source Not affected
SUSE OpenStack Cloud Crowbar 9 kernel-source Not affected
SUSE Real Time Module 15 SP3 kernel-source-rt Not affected
SUSE Real Time Module 15 SP4 kernel-source-rt Affected
openSUSE Leap 15.3 kernel-source Not affected
openSUSE Leap 15.3 kernel-source-rt Not affected
openSUSE Leap 15.4 kernel-source Affected
openSUSE Leap 15.4 kernel-source-azure Affected
openSUSE Leap 15.4 kernel-source-rt Affected


SUSE Timeline for this CVE

CVE page created: Tue Nov 19 20:01:02 2024
CVE page last modified: Tue Dec 3 17:03:38 2024