CVE-2026-80818

CVE-2026-80818

published September 4, 2026

CVSS
—
EPSS
0%
Percentile
10.4
In the wild
Unconfirmed
What it is

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

iommu/tegra241-cmdqv: Fix CMD_SYNC use-after-free on teardown

arm_smmu_impl_remove() is registered as a devres action in

arm_smmu_impl_probe(), before arm_smmu_init_queues() allocates

smmu->cmdq.q.base. On a devres unwind, whether a failed probe or an

unbind, the queue is freed first and arm_smmu_impl_remove() then runs

tegra241_cmdqv_remove_vintf(), whose VINTF deinit issues a CMD_SYNC on

the freed memory.

Observed during testing with a QEMU hack that makes the VCMDQ fail to

enable, so the impl reset fails and probe aborts into the devres unwind:

platform NVDA200C:00: tegra241_cmdqv: VINTF0: VCMDQ0/LVCMDQ0: failed to enable, STATUS=0x00000000

platform NVDA200C:00: tegra241_cmdqv: VINTF0: VCMDQ0/LVCMDQ0: GERRORN=0x0, GERROR=0x4, CONS=0x0

platform NVDA200C:00: tegra241_cmdqv: VINTF0: VCMDQ0/LVCMDQ0: uncleared error detected, resetting

arm-smmu-v3 arm-smmu-v3.0.auto: failed to reset impl

arm-smmu-v3 arm-smmu-v3.0.auto: probe with driver arm-smmu-v3 failed with error -110

Unable to handle kernel paging request at virtual address ffff8000891e0098

...

Internal error: Oops: 0000000096000047 [#1] SMP

...

Call trace:

arm_smmu_cmdq_issue_cmdlist+0x320/0x6fc (P)

tegra241_vcmdq_hw_deinit+0x98/0x168

tegra241_vintf_hw_deinit+0x5c/0x1b0

tegra241_cmdqv_remove_vintf+0x34/0xec

tegra241_cmdqv_remove+0x40/0x9c

arm_smmu_impl_remove+0x20/0x30

devm_action_release+0x14/0x20

devres_release_all+0xa8/0x110

device_unbind_cleanup+0x18/0x84

really_probe+0x1f0/0x29c

Drop the VINTF deinit from tegra241_cmdqv_remove_vintf() so the unwind no

longer touches the freed queue. Quiesce the VINTFs earlier instead. Add a

device_disable() impl op and run it from arm_smmu_disable_action() while

the CMDQ is still up. That handles a live unbind. A failed reset is already

handled because tegra241_vintf_hw_init() deinits the VINTF on its own error

path. tegra241_cmdqv_remove_vintf() is also used by the iommufd viommu

destroy path, so quiesce there too.

The record
Technical detail
CVSS
Not scored
CVSS v4.0
Not supplied
EPSS
0.00209 · 10.4th percentile
Published
2026-09-04T20:18Z
References (4)
EPSS history
Timeline
  • 06 SEP 03:33Z
    EPSS moved — → 0%
    epss
  • 04 SEP 15:13Z
    iommu/tegra241-cmdqv: Fix CMD_SYNC use-after-free on teardown
    cvelistv5