---
id: CVE-2025-39754
title: 'mm/smaps: fix race between smaps_hugetlb_range and migration'
summary: |-
  In the Linux kernel, the following vulnerability has been resolved:

  mm/smaps: fix race between smaps_hugetlb_range and migration

  smaps_hugetlb_range() handles the pte without holdling ptl, and may be
  concurrenct with migration, leaing …
severity: none
vendor: Linux
product: Linux
affected:
  - >-
    Linux >= 25ee01a2fca02dfb5a3ce316e77910c468108199 <
    f76089018b34dbe0c2e9b67c5b7d8860668748bb
  - >-
    Linux >= 25ee01a2fca02dfb5a3ce316e77910c468108199 <
    2a1f3663974162b8f1e098196f557cfc1d160138
  - >-
    Linux >= 25ee01a2fca02dfb5a3ce316e77910c468108199 <
    09fc018f48871123ad5dbd7b03c956580232ed76
  - >-
    Linux >= 25ee01a2fca02dfb5a3ce316e77910c468108199 <
    b625883ccbcc2b57808db51d1375b1d7b9bcb3e5
  - >-
    Linux >= 25ee01a2fca02dfb5a3ce316e77910c468108199 <
    45d19b4b6c2d422771c29b83462d84afcbb33f01
  - Linux 4.4
published: '2025-09-11'
updated: '2026-10-21'
sourceUpdated: '2026-10-21T12:37:19.186Z'
source: CVEORG
sourceUrl: 'https://www.cve.org/CVERecord?id=CVE-2025-39754'
references:
  - url: 'https://git.kernel.org/stable/c/f76089018b34dbe0c2e9b67c5b7d8860668748bb'
  - url: 'https://git.kernel.org/stable/c/2a1f3663974162b8f1e098196f557cfc1d160138'
  - url: 'https://git.kernel.org/stable/c/09fc018f48871123ad5dbd7b03c956580232ed76'
  - url: 'https://git.kernel.org/stable/c/b625883ccbcc2b57808db51d1375b1d7b9bcb3e5'
  - url: 'https://git.kernel.org/stable/c/45d19b4b6c2d422771c29b83462d84afcbb33f01'
tags:
  - cve.org
epss: 0.00139
epssPercentile: 0.03272
ingestedAt: '2026-10-21T12:48:53.698Z'
---

## Overview

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

mm/smaps: fix race between smaps_hugetlb_range and migration

smaps_hugetlb_range() handles the pte without holdling ptl, and may be
concurrenct with migration, leaing to BUG_ON in pfn_swap_entry_to_page(). 
The race is as follows.

smaps_hugetlb_range              migrate_pages
  huge_ptep_get
                                   remove_migration_ptes
				   folio_unlock
  pfn_swap_entry_folio
    BUG_ON

To fix it, hold ptl lock in smaps_hugetlb_range().

## Affected

- `Linux >= 25ee01a2fca02dfb5a3ce316e77910c468108199 < f76089018b34dbe0c2e9b67c5b7d8860668748bb`
- `Linux >= 25ee01a2fca02dfb5a3ce316e77910c468108199 < 2a1f3663974162b8f1e098196f557cfc1d160138`
- `Linux >= 25ee01a2fca02dfb5a3ce316e77910c468108199 < 09fc018f48871123ad5dbd7b03c956580232ed76`
- `Linux >= 25ee01a2fca02dfb5a3ce316e77910c468108199 < b625883ccbcc2b57808db51d1375b1d7b9bcb3e5`
- `Linux >= 25ee01a2fca02dfb5a3ce316e77910c468108199 < 45d19b4b6c2d422771c29b83462d84afcbb33f01`
- `Linux 4.4`

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
