From mboxrd@z Thu Jan 1 00:00:00 1970 From: AL-KERNEL To: kernel-cve@kernelcve.org Subject: [CVE-2026-90425][MODERATE 7.0] iommu/tegra241-cmdqv: Require exactly one Stream ID for a vSID [ Upstream Date: Thu, 17 Sep 2026 15:55:14 -0400 Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-AL-KERNEL-CVE: CVE-2026-90425 X-AL-KERNEL-Priority: MODERATE 7.0 X-AL-KERNEL-Severity: MODERATE 7.0 X-AL-KERNEL-Base-Severity: MODERATE X-AL-KERNEL-KPANIC: YES X-AL-KERNEL-ActionableScore: 6 X-AL-KERNEL-ActionableScore-Lower: 5 X-AL-KERNEL-Commit: 9b37afb2d34d99ec4f8db28134181b5a8ec9a4a5 List-Id: CVE: CVE-2026-90425 Priority: MODERATE 7.0 AL-KERNEL base severity: MODERATE KPANIC flag: YES Patch: iommu/tegra241-cmdqv: Require exactly one Stream ID for a vSID [ Upstream Commit: 9b37afb2d34d99ec4f8db28134181b5a8ec9a4a5 Upstream patch: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=9b37afb2d34d99ec4f8db28134181b5a8ec9a4a5 Original CVE announcement: https://lore.kernel.org/linux-cve-announce/?q=CVE-2026-90425 Analysis date: Thu, 17 Sep 2026 15:55:14 -0400 ActionableScore: 6 ActionableScore lower bound: 5 Actionable bucket: Actionable Moderate / Strong Important candidate requiring manual review Manual review required: YES Summary: No one-sentence report phrase was found. ====================================================================== ABOUT THIS REPORT ====================================================================== The original Linux kernel CVE announcement for CVE-2026-90425 is available here: https://lore.kernel.org/linux-cve-announce/?q=CVE-2026-90425 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-90425 MODERATE https://www.kernelcve.org/list/?q=CVE-2026-90425 CHECK WITH IMPACT FROM ORIG NN LOW 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-20;CWE-125;CWE-693;CWE-284;Other CVSS 'AV:L/AC:H/PR:L/UI:N/S:U/C:L/I:L/A:H';BEST CVSS score: '7';DESCR 'tegra241 CMDQV vSID setup accepted devices whose physical Stream ID count was not exactly one. For a multi stream device, only master streams 0 was mapped, so guest vSID invalidation could miss ATC and IOTLB entries belonging to the other streams and leave stale DMA translations active. For a device with zero streams, master streams may be a ZERO_SIZE_PTR and reading master streams 0 can become an out of bounds read or invalid kernel access. For the CVSS the PR:L is used because reliable triggering normally requires a local process with access to iommufd or delegated device assignment controls, but this is not necessarily full host administrator privilege in virtualized or service managed environments. The issue is not network reachable. Impact is at least local denial of service via invalid access, and the paranoid score treats the stale IOMMU translation case as possible confidentiality and integrity impact due to DMA isolation failure.';YES REQUIRES MANUAL CHECK; ,and ActionableScore result is Actionable Moderate / Strong Important candidate requiring manual review (with actual score 6) YES OOB SIMPLEFIX HARDWARE LINUS KPANIC KPANIC INCREASED_TO_HIGH_BASED_ON_GUESSCVSS DECREASED_TO_MODERATE7_BASED_ON_FALSEPOSCHECKOFDH YES NO checked ====================================================================== ACTIONABLESCORE ANALYSIS ====================================================================== ActionableScore=6 ActionableScoreLower=5 PrimitiveClass=CLASS_B RealUAF=NO HostAdminRequired=UNKNOWN NamespaceScopedPrivilege=NO ImportantCandidate=YES ManualReview=REQUIRED AutoDowngradeAllowed=NO 1. ActionableScore * Raw conservative score: 5 * Conservative score: 5. No floor or cap changed the conservative score. * Raw paranoid score: 6 * Paranoid score: 6. No floor or cap changed the paranoid score. * Final recommended bucket: **Actionable Moderate / Strong Important candidate requiring manual review**:: 2. Signal breakdown Conservative positive signals: * +1 Weak or indirect corruption candidate. If master->num_streams is zero, master->streams may be ZERO_SIZE_PTR and master->streams[0] becomes an out-of-bounds or invalid kernel read. * +1 Reliable crash or strong DoS concern. The zero-stream case can plausibly fault in kernel context due to invalid access. * +1 Active IOMMU translation synchronization issue. For a multi-stream device, only the first Stream ID is mapped, so guest vSID invalidation may not reach ATC and IOTLB entries for the other streams. * +1 Secondary translation or tracking staleness. The mapping state and device stream topology can become inconsistent, leaving active translations outside the intended invalidation path. * +1 Security-boundary relevance. IOMMU translation and invalidation correctness is part of DMA isolation, so stale translations are more security-relevant than ordinary stale metadata. Paranoid additional signal: * +1 Possible DMA isolation confidentiality or integrity impact. The multi-stream case can leave stale ATC or IOTLB translations active for streams not covered by the vSID mapping, which is a defensible unresolved isolation concern. Non-awarded signals: * +0 Real UAF. No heap lifetime UAF or stale post-free object use is directly established. * +0 Concrete repeated release/refcount. No first release followed by a second lifetime mutation on the same dangling reference is shown. * +0 Controlled reclaim. Not demonstrated. * +0 Arbitrary or directed kernel write. Not demonstrated. * +0 Remote reachability. Not established. * +0 Local unprivileged trigger. Not positively established because the complete iommufd and device assignment path is not shown. * +0 Class A authorization bypass. No direct ALLOW-vs-DENY authorization decision bypass is shown. * +0 Strong exploitation leverage. Stale DMA translations are plausible, but the supplied evidence does not show guest-controlled host memory read/write or a completed isolation bypass. Negative signals: * No host-admin penalty was applied because host-admin-equivalent privilege is not positively established by the supplied evidence. * No rare-hardware penalty was applied. The code is Tegra241-specific, but the prompt requires concrete evidence before reducing score merely because code is hardware-specific. 3. Reachability analysis The vulnerable function is in the Tegra241 CMDQV IOMMU path and takes an iommufd_vdevice, so the relevant attacker model is a local userspace or VMM-like actor interacting with iommufd and device assignment controls. The supplied patch does not prove that an ordinary unprivileged local user can complete the whole trigger chain. It also does not prove that host root or host-admin-equivalent privilege is strictly required. HostAdminRequired is therefore UNKNOWN. NamespaceScopedPrivilege is NO because no namespace-scoped capability path is established for the complete operation. Prior host setup may exist in realistic deployments because device assignment and IOMMUFD usage often involve a VMM or management stack, but this is not enough to apply a host-admin penalty. The issue is not network reachable. Special Tegra241 hardware and CMDQV support are required, but this was treated as exposure context rather than a scoring penalty. 4. Primitive and severity interpretation The exact primitive is an invalid acceptance of devices whose physical Stream ID count is not exactly one. With zero streams, this can cause an invalid or out-of-bounds read from master->streams[0]. With multiple streams, only stream 0 is mapped to the guest vSID, so guest invalidation can miss ATC and IOTLB entries for other streams. This is not a real UAF and not a concrete repeated refcount or release bug. The stronger concern is an active IOMMU translation and invalidation consistency violation. The affected state is active translation state, not passive metadata. The demonstrated consequence includes possible kernel invalid access or DoS. The unresolved consequence is stale DMA translation behavior that may affect DMA isolation. PrimitiveClass is CLASS_B because a meaningful active-state and translation-invalidation primitive exists, but there is no demonstrated controlled host memory access, arbitrary write, controlled reclaim, or completed privilege-escalation chain. ImportantCandidate is YES because IOMMU stale translation behavior is security-boundary relevant and should not be automatically downgraded from a small one-line validation fix. AutoDowngradeAllowed is NO because unresolved DMA isolation impact would be lost by treating this as only a WARN or OOB-read cleanup fix. 5. One-sentence report phrase Tegra241 CMDQV vSID setup accepted devices with zero or multiple Stream IDs, which can cause an invalid read for zero-stream devices or leave stale ATC/IOTLB translations for unmapped streams, making this an actionable IOMMU isolation issue requiring manual review. 6. Manual review recommendation MANUAL CHECK REQUIRED Reason: the patch fixes an IOMMU vSID to physical Stream ID validation error where multi-stream devices may retain stale DMA translations outside the guest invalidation path, which is a security-boundary relevant primitive even though direct exploitation beyond DoS is not proven. 7. Call-site confidence Call-site confidence: medium ====================================================================== UPSTREAM PATCH SUMMARY ====================================================================== Patch: iommu/tegra241-cmdqv: Require exactly one Stream ID for a vSID [ Upstream Commit: 9b37afb2d34d99ec4f8db28134181b5a8ec9a4a5 Upstream URL: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=9b37afb2d34d99ec4f8db28134181b5a8ec9a4a5 Changed files: drivers/iommu/arm/arm-smmu-v3/tegra241-cmdqv.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=9b37afb2d34d99ec4f8db28134181b5a8ec9a4a5 ====================================================================== DETAILED REPORT METHODOLOGY ====================================================================== The original Linux kernel CVE announcement for CVE-2026-90425 can be found here: https://lore.kernel.org/linux-cve-announce/?q=CVE-2026-90425 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:L/I:L/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: 5 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 alexanjelausa@gmail.com (and both send reply to CVE record itself too and see "reply" button below for howto reply).