Back

HIGH

fork: only invoke khugepaged, ksm hooks if no error

Published Nov 11, 2024

Description

There is no reason to invoke these hooks early against an mm that is in an incomplete state.

The change in commit d24062914837 ("fork: use __mt_dup() to duplicate maple tree in dup_mmap()") makes this more pertinent as we may be in a state where entries in the maple tree are not yet consistent.

Their placement early in dup_mmap() only appears to have been meaningful for early error checking, and since functionally it'd require a very small allocation to fail (in practice 'too small to fail') that'd only occur in the most dire circumstances, meaning the fork would fail or be OOM'd in any case.

Since both khugepaged and KSM tracking are there to provide optimisations to memory performance rather than critical functionality, it doesn't really matter all that much if, under such dire memory pressure, we fail to register an mm with these.

As a result, we follow the example of commit d2081b2bf819 ("mm: khugepaged: make khugepaged_enter() void function") and make ksm_fork() a void function also.

We only expose the mm to these functions once we are done with them and only if no error occurred in the fork operation.

Affected products

Remediation

Red Hat mitigation

Mitigation for this issue is either not available or the currently available options do not meet the Red Hat Product Security criteria comprising ease of use and deployment, applicability to widespread installation base, or stability.

Weaknesses (1)

References (9)

Change history (0)

No recorded changes yet.

Sources

CVE.org / MITRE

Status PUBLISHED
Assigner Linux
Published Nov 11, 2024
Updated Aug 5, 2026
Reserved Oct 21, 2024

CISA Vulnrichment

No data

NVD

Status Modified
Modified Aug 4, 2026

Red Hat

Severity Moderate
Public date Nov 11, 2024
Bugzilla 2325208

ENISA EUVD

Assigner Linux
Published Nov 11, 2024
Updated Aug 5, 2026

GitHub

No data