LiveActive security incident?Get immediate response
CVE Record

CVE-2025-39961: iommu/amd/pgtbl: Fix possible race while increase page table level

In the Linux kernel, the following vulnerability has been resolved: iommu/amd/pgtbl: Fix possible race while increase page table level The AMD IOMMU host page table implementation supports dynamic page table levels (up to 6 levels), starting with a 3-level configuration that expands based on IOVA address. The kernel maintains a root pointer and current page table level to enable proper page table walks in alloc_pte()/fetch_pte() operations. The IOMMU IOVA allocator initially starts with 32-bit address and onces its exhuasted it switches to 64-bit address (max address is determined based on IOMMU and device DMA capability). To support larger IOVA, AMD IOMMU driver increases page table level. But in unmap path (iommu_v1_unmap_pages()), fetch_pte() reads pgtable->[root/mode] without lock. So its possible that in exteme corner case, when increase_address_space() is updating pgtable->[root/mode], fetch_pte() reads wrong page table level (pgtable->mode). It does compare the value with level encoded in page table and returns NULL. This will result is iommu_unmap ops to fail and upper layer may retry/log WARN_ON. CPU 0 CPU 1 ------ ------ map pages unmap pages alloc_pte() -> increase_address_space() iommu_v1_unmap_pages() -> fetch_pte() pgtable->root = pte (new root value) READ pgtable->[mode/root] Reads new root, old mode Updates mode (pgtable->mode += 1) Since Page table level updates are infrequent and already synchronized with a spinlock, implement seqcount to enable lock-free read operations on the read path.

HighCVSS 8.8Not KEV-listedUpdated
Glexia's TakeAutomated analysishigh

Security readout for executives and security teams

Plain-English summary

A race in the Linux AMD IOMMU driver can make memory-unmapping operations fail when the driver expands its page table. This may produce retries or kernel warnings. The supplied 8.8 score indicates potentially severe impact, although the technical description documents an unmap failure rather than demonstrated compromise.

Executive priority

Treat as a high-priority kernel maintenance issue on AMD IOMMU infrastructure, especially virtualization or DMA-intensive hosts. Expedite exposure verification and vendor-approved updates. Immediate emergency response is not supported by the supplied evidence because active exploitation is unreported and the documented race is an extreme corner case.

Technical view

During concurrent mapping and unmapping, increase_address_space() can update the page-table root before its level, while fetch_pte() reads both without locking. The reader may combine the new root with the old level, reject the mismatch, and return NULL. The published correction uses a sequence counter to provide consistent lock-free reads.

Likely exposure

Exposure is limited to Linux systems using AMD IOMMU host page tables and an affected kernel. The source marks 5.3, 6.6.108, 6.12.49, 6.16.9, and 6.17 affected, but also contains an anomalous version “0.” Confirm applicability through the system’s distribution or kernel vendor.

Exploitation context

The CVE is not listed as KEV in the supplied bundle, and no cited source reports active exploitation. Triggering requires local, low-privileged access according to the CVSS vector, plus the uncommon concurrent page-table expansion condition.

Researcher notes

The supplied CVSS claims high confidentiality, integrity, and availability impact with changed scope, but the vulnerability narrative directly describes failed unmapping, retries, and warnings. No mechanism demonstrating those broader impacts is provided. Version metadata is also inconsistent, including duplicate commit identifiers and an affected version “0,” reducing confidence in precise range interpretation.

Mitigation direction

  • Install the distribution or kernel-vendor update containing the cited upstream correction.
  • Prioritize AMD IOMMU hosts running versions identified as affected.
  • Consult vendor guidance when backport status cannot be established from the running version.
  • Restrict unnecessary local access until affected systems are updated.

Validation and detection

  • Inventory kernel versions and identify systems using AMD IOMMU.
  • Confirm each distribution package includes one of the cited corrective commits or an equivalent backport.
  • Review kernel logs for IOMMU unmap failures, retries, or WARN_ON events.
  • Recheck affected-version status with the applicable distribution security advisory.
Prepared
Confidence
medium
Sources
6

Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.

Potential ATT&CK relevance

Conservative CVE-to-ATT&CK context

These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.

ATT&CK lookup starting points

Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.

cve · low confidence lookup

CVE-2025-39961 mapping review

Open the CVE-to-ATT&CK bridge for reviewed, inferred, or future official mappings tied to this CVE.

Open ATT&CK lookup
Vulnerability profileCVE Program record
Severity
High
CVSS
8.8 (3.1)
Known Exploited
No
Published

Vector: CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H

Official CVE source material

CNA and ADP enrichment extracted from CVE v5

These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.

1CVSS vectors
3Timeline events
0ADP providers
5Source links

CVSS vector scores

1 official score

We collect every scored CVSS vector available in the official CNA and ADP containers. When more than one version is present, the table keeps the source vectors side by side instead of collapsing them into the highest score.

ScoreVersionSeverityVectorExploitImpactSource
8.8CVSS 3.1HighCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H26Linux

Vulnerability scoring details

Base CVSS 3.1 score

8.8High
CVSS 3.1 vector shape for CVE-2025-39961Attack VectorAttack ComplexityPrivileges RequiredUser InteractionScopeConfidentiality ImpactIntegrity ImpactAvailability Impact

Vector: CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H

Attack Vector
NetworkAdjacentLocalPhysical
Attack Complexity
LowHigh
Privileges Required
NoneLowHigh
User Interaction
NoneRequired
Scope
ChangedUnchanged
Confidentiality Impact
HighLowNone
Integrity Impact
HighLowNone
Availability Impact
HighLowNone

Vulnerability timeline

Timeline events are normalized from CVE metadata, CNA source timelines, ADP timelines, and KEV metadata when present.

  1. CVE reservedCVE Program

    The CVE ID was reserved by the assigning CNA.

  2. CVE publishedCVE Program

    The CVE record was published.

  3. CVE updatedCVE Program

    The CVE record metadata indicates this as the latest update time.

Affected products

Products and packages named in the record

VendorProductVersion / packageStatus
LinuxLinux754265bcab78a9014f0f99cd35e0d610fcd7dfa7, 754265bcab78a9014f0f99cd35e0d610fcd7dfa7, 754265bcab78a9014f0f99cd35e0d610fcd7dfa7, 754265bcab78a9014f0f99cd35e0d610fcd7dfa7, 6fb92f18555a7b8e085267d513612dc0ff9a5360, b15bf74405faa1a65025eb8a6eb337e140e5250a, 0d50f7b1e8c80a8c20db5049e269468c059b0378, 785ca708a908b9c596ede852470ba28b8dc3e40b, 4.9.194, 4.14.146, 4.19.75, 5.2.17unaffected
LinuxLinux5.3, 0, 6.6.108, 6.12.49, 6.16.9, 6.17affected
Weakness

CWE details

No CWE listed

CWE links open Glexia weakness intelligence pages with official CWE context, developer remediation guidance, and related CVE mappings.