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

Published Sep 4, 2026
·
Updated

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

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

armsmmuimplremove() is registered as a devres action in armsmmuimplprobe(), before armsmmuinitqueues() allocates smmu->cmdq.q.base. On a devres unwind, whether a failed probe or an unbind, the queue is freed first and armsmmuimplremove() then runs tegra241cmdqvremovevintf(), whose VINTF deinit issues a CMDSYNC 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: tegra241cmdqv: VINTF0: VCMDQ0/LVCMDQ0: failed to enable, STATUS=0x00000000 platform NVDA200C:00: tegra241cmdqv: VINTF0: VCMDQ0/LVCMDQ0: GERRORN=0x0, GERROR=0x4, CONS=0x0 platform NVDA200C:00: tegra241cmdqv: 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: armsmmucmdqissuecmdlist+0x320/0x6fc (P) tegra241vcmdqhwdeinit+0x98/0x168 tegra241vintfhwdeinit+0x5c/0x1b0 tegra241cmdqvremovevintf+0x34/0xec tegra241cmdqvremove+0x40/0x9c armsmmuimplremove+0x20/0x30 devmactionrelease+0x14/0x20 devresreleaseall+0xa8/0x110 deviceunbindcleanup+0x18/0x84 reallyprobe+0x1f0/0x29c

Drop the VINTF deinit from tegra241cmdqvremovevintf() so the unwind no longer touches the freed queue. Quiesce the VINTFs earlier instead. Add a devicedisable() impl op and run it from armsmmudisableaction() while the CMDQ is still up. That handles a live unbind. A failed reset is already handled because tegra241vintfhwinit() deinits the VINTF on its own error path. tegra241cmdqvremovevintf() is also used by the iommufd viommu destroy path, so quiesce there too.

Affected Software

1 affected component
Linux Kernel

Event History

Sep 4, 2026
CVE Published
via MITRE·03:13 PM
Data Sourced
via MITRE·03:13 PM
Description

Frequently Asked Questions

1

Which systems are exposed to this issue?

Systems using the Linux kernel arm-smmu-v3 driver with the Tegra241 CMDQ virtual interface are affected during driver probe failure or device unbind teardown. The reported failure path involves a VCMDQ that fails to enable.

2

What event triggers the use-after-free?

A devres unwind frees the SMMU command queue before arm_smmu_impl_remove() runs. The Tegra241 VINTF deinitialization then issues CMD_SYNC using the already-freed command-queue memory.

3

How might an affected system present?

A failed arm-smmu-v3 probe or unbind can lead to a kernel paging request and Oops during teardown. The example logs include a VCMDQ enable failure, an implementation reset failure, and probe failure with error -110.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203