* [CVE-2026-52953][MODERATE 7.0] iommu/vt-d: Fix oops due to out of scope access
@ 2026-06-26 17:53 AL-KERNEL
0 siblings, 0 replies; only message in thread
From: AL-KERNEL @ 2026-06-26 17:53 UTC (permalink / raw)
To: kernel-cve
CVE: CVE-2026-52953
Priority: MODERATE 7.0
AL-KERNEL base severity: MODERATE
KPANIC flag: YES
Patch: iommu/vt-d: Fix oops due to out of scope access
Commit: 88397fad7914ee74a7880fa5ce01f9eb6bfe0743
Upstream patch: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=88397fad7914ee74a7880fa5ce01f9eb6bfe0743
Original CVE announcement: https://lore.kernel.org/linux-cve-announce/?q=CVE-2026-52953
Analysis date: Fri, 26 Jun 2026 13:53:53 -0400
ActionableScore: 6
ActionableScore lower bound: 4
Actionable bucket: Actionable Moderate at minimum
Manual review required: YES
Summary:
An invalid IOMMU VT-d domain downcast can treat the global blocked domain as a dmar_domain during VFIO PCI teardown, causing out of scope metadata access and a host kernel oops, with weak but defensible concern for memory corruption beyond DoS.
======================================================================
ABOUT THIS REPORT
======================================================================
The original Linux kernel CVE announcement for CVE-2026-52953 is available here:
https://lore.kernel.org/linux-cve-announce/?q=CVE-2026-52953
The original announcement does not normally provide a security severity
estimate, CVSS assessment, or enough information to determine whether the
reported kernel bug represents a practically relevant security issue.
This report was generated by AL-KERNEL, an AI-assisted Linux kernel
vulnerability analysis system developed by Alexander Larkin. It combines
an autonomous classifier with LLM-assisted technical analysis and a
separate ActionableScore mechanism.
The purpose of this report is to prioritize Linux kernel CVEs before
manual review, identify cases that require prompt investigation, and
support automatic closure of issues that are unlikely to have meaningful
security impact.
Published priority for this report: MODERATE 7.0
Manual review required: YES
A detailed explanation of the methodology and priority rules is included
at the end of this message.
======================================================================
AL-KERNEL CLASSIFICATION RESULT
======================================================================
CVE-2026-52953 MODERATE CHECK Maybe valid. Check manually. Hints by AL-KERNEL: The best (paranoid) CVSS is 'AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H';CWE-704;CWE-843;*CWE-787;Other CVSS 'AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:H';BEST CVSS score: '7';DESCR 'IOMMU VT-d domain_remove_dev_pasid can incorrectly treat the global blocked domain as a dmar_domain even though that dummy domain has no dmar_domain metadata. During VFIO PCI teardown, for example when a QEMU process with a passed through device is killed, the reset path can call into intel_nested_set_dev_pasid and then access fields beyond the real iommu_domain object. This can trigger a host kernel oops or crash. For the CVSS the PR:L is used because practical triggering requires local ability to control or terminate a VM or process that has delegated VFIO or iommufd access, rather than full host administrator control in all deployments. The issue is not network reachable by packet traffic. Impact is at least local denial of service and the paranoid score treats the out-of-scope structure access as a memory corruption candidate requiring manual review.';YES REQUIRES MANUAL CHECK; ,and ActionableScore result is Actionable Moderate at minimum (with actual score 5) MAYBE OOB DMAorINTERRUPT HARDWARE KPANIC MEMORY - - checked
======================================================================
ACTIONABLESCORE ANALYSIS
======================================================================
ActionableScore=6
ActionableScoreLower=4
## 1. ActionableScore
* Conservative score: 4
* Paranoid score: 6
* Final recommended bucket: **Actionable Moderate at minimum**
## 2. Signal breakdown
Conservative signals:
* Local delegated trigger: +1
Triggering is local and tied to VFIO iommufd QEMU teardown with PCI passthrough. It does not require packet based remote reachability.
* Memory corruption, Weak/indirect corruption candidate: +1
The blocked IOMMU domain is a dummy iommu_domain without embedded dmar_domain metadata, but the code still applies to_dmar_domain(). This is invalid struct interpretation and out of scope object access.
* Reliable kernel crash / strong DoS: +1
The commit shows a concrete host kernel oops during QEMU process termination.
* Privileged kernel/device-management memory corruption path: +1
The fault occurs in IOMMU VT-d, PASID, VFIO, PCI reset, and device teardown paths, which are highly trusted device-management contexts.
Paranoid additional signals:
* Weak LPE concern: +1
The invalid downcast can make later code operate on bogus fields such as locks or metadata. No controlled primitive is demonstrated, but this is more concerning than a simple NULL dereference.
* Integrity impact plausible: +1
In the paranoid interpretation, out of scope access inside IOMMU metadata handling could become a limited corruption sink depending on object layout and call path.
Not counted:
* Remote reachable: +0
No realistic network packet trigger is shown.
* Strong corruption primitive: +0
There is no demonstrated attacker-controlled overwrite, reclaim primitive, UAF, or arbitrary write.
* Full admin penalty: +0
VFIO setup is privileged, but practical triggering may be by a reduced-privilege QEMU owner or service account with delegated VFIO or iommufd access, not necessarily full host root.
## 3. Reachability analysis
The bug is triggered during VFIO PCI device teardown, for example when a QEMU process with a passed-through device is killed. The immediate caller chain goes through vfio_pci_core_close_device(), PCI FLR/reset, pci_dev_reset_iommu_done(), and intel_nested_set_dev_pasid(). In typical deployments, creating such a setup requires administrator involvement, but once VFIO or iommufd access is delegated, a lower-privileged VM process owner or service account may be able to trigger the teardown path.
Containers and namespaces may reduce the effective privilege requirement if device access is delegated into a container or service environment. The path is not default exposed to ordinary users on most systems, but it is realistic on virtualization hosts using VFIO passthrough.
## 4. Severity interpretation
This is stronger than an ordinary Moderate crash because the root cause is invalid interpretation of an IOMMU domain object and access beyond the real object layout. Realistically, the demonstrated impact is host kernel crash / DoS during VFIO teardown. Theoretical memory corruption impact is plausible enough for manual review, but the patch does not demonstrate a strong LPE primitive such as controlled overwrite, UAF reclaim, or arbitrary write.
This should be treated as an Actionable Moderate at minimum, with Important-candidate review depending on whether further analysis shows controllable corruption through the bogus dmar_domain access.
## 5. One-sentence report phrase
An invalid IOMMU VT-d domain downcast can treat the global blocked domain as a dmar_domain during VFIO PCI teardown, causing out of scope metadata access and a host kernel oops, with weak but defensible concern for memory corruption beyond DoS.
## 6. Manual review recommendation
MANUAL CHECK REQUIRED
The bug is not a simple NULL dereference or pure resource exhaustion issue. It involves invalid object interpretation in a privileged IOMMU/VFIO device-management path, and the crash site suggests access through bogus structure fields, so memory corruption and LPE feasibility should be reviewed manually.
======================================================================
UPSTREAM PATCH SUMMARY
======================================================================
Patch: iommu/vt-d: Fix oops due to out of scope access
Commit: 88397fad7914ee74a7880fa5ce01f9eb6bfe0743
Upstream URL: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=88397fad7914ee74a7880fa5ce01f9eb6bfe0743
Commit description:
Below oops triggers when kill QEMU process:
Oops: general protection fault, probably for non-canonical address 0x7fffffff844eaaa7: 0000 [#1] SMP NOPTI
Call Trace:
<TASK>
do_raw_spin_lock+0xaa/0xc0
_raw_spin_lock_irqsave+0x21/0x40
domain_remove_dev_pasid+0x52/0x160
intel_nested_set_dev_pasid+0x1b9/0x1e0
__iommu_set_group_pasid+0x56/0x120
pci_dev_reset_iommu_done+0xe3/0x180
pcie_flr+0x65/0x160
__pci_reset_function_locked+0x5b/0x120
vfio_pci_core_close_device+0x63/0xe0 [vfio_pci_core]
vfio_df_close+0x4f/0xa0
vfio_df_unbind_iommufd+0x2d/0x60
vfio_device_fops_release+0x3e/0x40
__fput+0xe5/0x2c0
task_work_run+0x58/0xa0
do_exit+0x2c8/0x600
do_group_exit+0x2f/0xa0
get_signal+0x863/0x8c0
arch_do_signal_or_restart+0x24/0x100
exit_to_user_mode_loop+0x87/0x380
do_syscall_64+0x2ff/0x11e0
entry_SYSCALL_64_after_hwframe+0x76/0x7e
The global static blocked domain is a dummy domain without corresponding
dmar_domain structure, accessing beyond iommu_domain structure triggers
oops easily. Fix it by return early in domain_remove_dev_pasid() like
identity domain.
Fixes: 7d0c9da ("iommu/vt-d: Add set_dev_pasid callback for dma domain")
Cc: [email protected]
Signed-off-by: Zhenzhong Duan <[email protected]>
Reviewed-by: Kevin Tian <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Lu Baolu <[email protected]>
Signed-off-by: Joerg Roedel <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
Changed files:
drivers/iommu/intel/iommu.c
Diff excerpt:
Not included in this email. See the upstream URL for the full patch.
Full patch:
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=88397fad7914ee74a7880fa5ce01f9eb6bfe0743
======================================================================
DETAILED REPORT METHODOLOGY
======================================================================
The original Linux kernel CVE announcement for CVE-2026-52953 can be found here:
https://lore.kernel.org/linux-cve-announce/?q=CVE-2026-52953
The original CVE announcement normally does not include a security-level
estimate. In particular, it may not contain a CVSS assessment, an impact
level, or enough information to determine whether the reported bug is a
practically relevant security issue. One purpose of this parallel CVE list
is to provide that missing technical and prioritization information.
The original goal of the AL-KERNEL project was to prioritize Linux kernel
CVE analysis automatically before manual review. The system can also help
identify non-security issues that may be suitable for automatic closure.
This report was generated by AL-KERNEL, an AI-assisted Linux kernel
vulnerability analysis system developed by Alexander Larkin.
The first analysis stage combines an autonomous classifier with additional
LLM-based analysis. The autonomous classifier runs locally on a CPU and is
based on a backpropagation neural network. Together, these mechanisms
produce a technical vulnerability description, identify likely weakness
types, estimate CVSS severity, and provide input for ActionableScore.
Two CVSS estimates are retained because incomplete kernel vulnerability
information often permits more than one defensible interpretation:
Conservative CVSS vector: AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:H
The Best / paranoid CVSS vector: AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H
The Best / paranoid CVSS score: 7
The conservative vector represents a lower-impact interpretation.
The Best/paranoid vector intentionally represents a plausible upper-bound
interpretation and should not automatically be treated as demonstrated
real-world impact.
CVSS may also need to be adjusted for a particular Linux deployment,
because actual reachability, privileges, enabled kernel configuration,
hardware, namespaces, exposed device nodes, and other environmental
conditions can differ significantly between systems.
A separate ActionableScore mechanism evaluates practical remediation
urgency. Its analysis may include reachability, attack prerequisites,
subsystem exposure, memory-corruption characteristics, denial-of-service
reliability, and possible confidentiality, integrity, or
privilege-escalation impact.
Conservative ActionableScore: 4
Paranoid ActionableScore: 6
The final base severity is taken directly from the second tab-separated
field of the AL-KERNEL classification result. ActionableScore does not
replace or independently override that final AL-KERNEL decision, and
if ActionableScore adjusted impact level of ALKERNEL, then you would see
self-readable flags above like INCREASED_TO_HIGH_BASED_ON_ACTIONABLESCOREHIGHEREQTHAN7.
For an AL-KERNEL result of MODERATE, this report uses the following
additional presentation split:
ActionableScore below 5 -> MODERATE REGULAR
ActionableScore 5 or more -> MODERATE 7.0
The distinction between MODERATE REGULAR and MODERATE 7.0 makes it
possible to identify Moderate issues that should receive manual analysis
and fixes before lower-priority MODERATE REGULAR issues. In many cases,
MODERATE REGULAR fixes may wait for a later rebase or routine update.
There is one override in which MODERATE REGULAR becomes MODERATE 7.0
even when the ActionableScore is below 5. When the AL-KERNEL result
contains the KPANIC flag, a MODERATE result is always presented as
MODERATE 7.0. The KPANIC flag selected with few regexps without
usage of AI at all, so it helps to detect cases when Kernel Crash happens
and similar (to filter False-Negative results from the LLM usage).
KPANIC indicates that a reliable kernel crash, kernel panic, or similarly
serious kernel availability impact was identified by the classification
workflow.
AL-KERNEL base severity for this report: MODERATE
KPANIC detected for this report: YES
Published priority for this report (same as in Subject): MODERATE 7.0
These results are intended to support engineering triage. They are
machine-generated estimates, and cases marked for manual review should
be validated by a human security engineer before final disposition.
For more info read docs linked from here: https://kernelcve.org/
(and you can submit you own patch there to generate such a report
for non-existant CVE-id yet).
Note that in many cases this AI tool selects higher severity, than
real is (means you can expect Importants instead of Moderate 7.0 or
Moderates 7.0 instead of regular Moderates). If you see such cases,
please use reply email interface to add additional manual analyses
info to this particular CVE.
And please, please, let me know when you see Lows instead of Importants
or Important instead of Low (because particular for such cases I
need to tune this AI tool to make it better for this one and next similar).
My contact email for such notifications is [email protected] (and both
send reply to CVE record itself too and see "reply" button below for howto reply).
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2026-06-26 17:53 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-06-26 17:53 [CVE-2026-52953][MODERATE 7.0] iommu/vt-d: Fix oops due to out of scope access AL-KERNEL
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox