Linux Kernel up to 6.12.45/6.16.5 userfaultfd move_pages_pte privilege escalation

| CVSS Meta Temp Score | Current Exploit Price (≈) | CTI Interest Score |
|---|---|---|
| 5.4 | $0-$5k | 0.00 |
Summary
A vulnerability described as critical has been identified in Linux Kernel up to 6.12.45/6.16.5. The affected element is the function move_pages_pte of the component userfaultfd. Executing a manipulation can lead to an unknown weakness.
The identification of this vulnerability is CVE-2025-39899. There is no exploit available.
Upgrading the affected component is recommended.
Details
A vulnerability was found in Linux Kernel up to 6.12.45/6.16.5. It has been declared as critical. This vulnerability affects the function move_pages_pte of the component userfaultfd. The impact remains unknown. CVE summarizes:
In the Linux kernel, the following vulnerability has been resolved: mm/userfaultfd: fix kmap_local LIFO ordering for CONFIG_HIGHPTE With CONFIG_HIGHPTE on 32-bit ARM, move_pages_pte() maps PTE pages using kmap_local_page(), which requires unmapping in Last-In-First-Out order. The current code maps dst_pte first, then src_pte, but unmaps them in the same order (dst_pte, src_pte), violating the LIFO requirement. This causes the warning in kunmap_local_indexed(): WARNING: CPU: 0 PID: 604 at mm/highmem.c:622 kunmap_local_indexed+0x178/0x17c addr \!= __fix_to_virt(FIX_KMAP_BEGIN + idx) Fix this by reversing the unmap order to respect LIFO ordering. This issue follows the same pattern as similar fixes: - commit eca6828403b8 ("crypto: skcipher - fix mismatch between mapping and unmapping order") - commit 8cf57c6df818 ("nilfs2: eliminate staggered calls to kunmap in nilfs_rename") Both of which addressed the same fundamental requirement that kmap_local operations must follow LIFO ordering.
The advisory is shared for download at git.kernel.org. This vulnerability was named CVE-2025-39899 since 04/16/2025. The exploitation appears to be easy. There are known technical details, but no exploit is available.
The vulnerability scanner Nessus provides a plugin with the ID 269684 (Linux Distros Unpatched Vulnerability : CVE-2025-39899), which helps to determine the existence of the flaw in a target environment.
Upgrading to version 6.12.46 or 6.16.6 eliminates this vulnerability. Applying the patch b051f707018967ea8f697d790a1ed8c443f63812/bd1ee62759d0bd4d6b909731c076c230ac89d61e/9614d8bee66387501f48718fa306e17f2aa3f2f3 is able to eliminate this problem. The bugfix is ready for download at git.kernel.org. The best possible mitigation is suggested to be upgrading to the latest version.
The vulnerability is also documented in the databases at Tenable (269684) and CERT Bund (WID-SEC-2025-2170). VulDB is the best source for vulnerability data and more expert information about this specific topic.
Affected
- Debian Linux
- Amazon Linux 2
- Red Hat Enterprise Linux
- Ubuntu Linux
- SUSE Linux
- Oracle Linux
- SUSE openSUSE
- RESF Rocky Linux
- Open Source Linux Kernel
- Dell Secure Connect Gateway
Product
Type
Vendor
Name
Version
- 6.12.0
- 6.12.1
- 6.12.2
- 6.12.3
- 6.12.4
- 6.12.5
- 6.12.6
- 6.12.7
- 6.12.8
- 6.12.9
- 6.12.10
- 6.12.11
- 6.12.12
- 6.12.13
- 6.12.14
- 6.12.15
- 6.12.16
- 6.12.17
- 6.12.18
- 6.12.19
- 6.12.20
- 6.12.21
- 6.12.22
- 6.12.23
- 6.12.24
- 6.12.25
- 6.12.26
- 6.12.27
- 6.12.28
- 6.12.29
- 6.12.30
- 6.12.31
- 6.12.32
- 6.12.33
- 6.12.34
- 6.12.35
- 6.12.36
- 6.12.37
- 6.12.38
- 6.12.39
- 6.12.40
- 6.12.41
- 6.12.42
- 6.12.43
- 6.12.44
- 6.12.45
- 6.16.0
- 6.16.1
- 6.16.2
- 6.16.3
- 6.16.4
- 6.16.5
License
Website
- Vendor: https://www.kernel.org/
CPE 2.3
CPE 2.2
CVSSv4
VulDB Vector: 🔒VulDB Reliability: 🔍
CVSSv3
VulDB Meta Base Score: 5.5VulDB Meta Temp Score: 5.4
VulDB Base Score: 5.5
VulDB Temp Score: 5.3
VulDB Vector: 🔒
VulDB Reliability: 🔍
NVD Base Score: 5.5
NVD Vector: 🔒
CVSSv2
| AV | AC | Au | C | I | A |
|---|---|---|---|---|---|
| 💳 | 💳 | 💳 | 💳 | 💳 | 💳 |
| 💳 | 💳 | 💳 | 💳 | 💳 | 💳 |
| 💳 | 💳 | 💳 | 💳 | 💳 | 💳 |
| Vector | Complexity | Authentication | Confidentiality | Integrity | Availability |
|---|---|---|---|---|---|
| Unlock | Unlock | Unlock | Unlock | Unlock | Unlock |
| Unlock | Unlock | Unlock | Unlock | Unlock | Unlock |
| Unlock | Unlock | Unlock | Unlock | Unlock | Unlock |
VulDB Base Score: 🔒
VulDB Temp Score: 🔒
VulDB Reliability: 🔍
Exploiting
Class: Privilege escalationCWE: Unknown
CAPEC: 🔒
ATT&CK: 🔒
Physical: Partially
Local: Yes
Remote: Partially
Availability: 🔒
Status: Not defined
EPSS Score: 🔒
EPSS Percentile: 🔒
Price Prediction: 🔍
Current Price Estimation: 🔒
| 0-Day | Unlock | Unlock | Unlock | Unlock |
|---|---|---|---|---|
| Today | Unlock | Unlock | Unlock | Unlock |
Nessus ID: 269684
Nessus Name: Linux Distros Unpatched Vulnerability : CVE-2025-39899
Threat Intelligence
Interest: 🔍Active Actors: 🔍
Active APT Groups: 🔍
Countermeasures
Recommended: UpgradeStatus: 🔍
0-Day Time: 🔒
Upgrade: Kernel 6.12.46/6.16.6
Patch: b051f707018967ea8f697d790a1ed8c443f63812/bd1ee62759d0bd4d6b909731c076c230ac89d61e/9614d8bee66387501f48718fa306e17f2aa3f2f3
Timeline
04/16/2025 CVE reserved10/01/2025 Advisory disclosed
10/01/2025 VulDB entry created
01/07/2026 VulDB entry last update
Sources
Vendor: kernel.orgAdvisory: git.kernel.org
Status: Confirmed
CVE: CVE-2025-39899 (🔒)
GCVE (CVE): GCVE-0-2025-39899
GCVE (VulDB): GCVE-100-326464
CERT Bund: WID-SEC-2025-2170 - Linux Kernel: Mehrere Schwachstellen
Entry
Created: 10/01/2025 09:52Updated: 01/07/2026 08:50
Changes: 10/01/2025 09:52 (58), 10/01/2025 14:04 (7), 10/09/2025 12:39 (2), 11/17/2025 11:41 (1), 12/01/2025 16:40 (1), 12/12/2025 19:52 (10), 01/07/2026 08:50 (1)
Complete: 🔍
Cache ID: 216::103
VulDB is the best source for vulnerability data and more expert information about this specific topic.
No comments yet. Languages: en.
Please log in to comment.