CVE-2022-50093: iommu/vt-d: avoid invalid memory access via node_online(NUMA_NO_NODE)
In the Linux kernel, the following vulnerability has been resolved:
iommu/vt-d: avoid invalid memory access via node_online(NUMA_NO_NODE)
KASAN reports:
[ 4.668325][ T0] BUG: KASAN: wild-memory-access in dmar_parse_one_rhsa (arch/x86/include/asm/bitops.h:214 arch/x86/include/asm/bitops.h:226 include/asm-generic/bitops/instrumented-non-atomic.h:142 include/linux/nodemask.h:415 drivers/iommu/intel/dmar.c:497)
[ 4.676149][ T0] Read of size 8 at addr 1fffffff85115558 by task swapper/0/0
[ 4.683454][ T0]
[ 4.685638][ T0] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 5.19.0-rc3-00004-g0e862838f290 #1
[ 4.694331][ T0] Hardware name: Supermicro SYS-5018D-FN4T/X10SDV-8C-TLN4F, BIOS 1.1 03/02/2016
[ 4.703196][ T0] Call Trace:
[ 4.706334][ T0] <TASK>
[ 4.709133][ T0] ? dmar_parse_one_rhsa (arch/x86/include/asm/bitops.h:214 arch/x86/include/asm/bitops.h:226 include/asm-generic/bitops/instrumented-non-atomic.h:142 include/linux/nodemask.h:415 drivers/iommu/intel/dmar.c:497)
after converting the type of the first argument (@nr, bit number)
of arch_test_bit() from `long` to `unsigned long`[0].
Under certain conditions (for example, when ACPI NUMA is disabled
via command line), pxm_to_node() can return %NUMA_NO_NODE (-1).
It is valid 'magic' number of NUMA node, but not valid bit number
to use in bitops.
node_online() eventually descends to test_bit() without checking
for the input, assuming it's on caller side (which might be good
for perf-critical tasks). There, -1 becomes %ULONG_MAX which leads
to an insane array index when calculating bit position in memory.
For now, add an explicit check for @node being not %NUMA_NO_NODE
before calling test_bit(). The actual logics didn't change here
at all.
[0] https://github.com/norov/linux/commit/0e862838f290147ea9c16db852d8d494b552d38d
Security readout for executives and security teams
Plain-English summary
This is a Linux kernel stability and safety issue in Intel VT-d IOMMU handling. Under specific NUMA-related conditions, such as ACPI NUMA being disabled, the kernel can treat NUMA_NO_NODE (-1) as a bit number and read invalid memory. The bundle does not show remote exploitation, active exploitation, or CVSS severity.
Executive priority
Treat this as kernel maintenance with targeted urgency for infrastructure using affected Linux kernels and Intel VT-d. Without evidence of exploitation or a CVSS score, it should not displace actively exploited vulnerabilities, but unpatched kernel memory-safety issues should be removed from production baselines.
Technical view
dmar_parse_one_rhsa can call node_online() with NUMA_NO_NODE. node_online() reaches test_bit() without validating the node value, so -1 becomes ULONG_MAX and produces an invalid bitmap index. The fix adds an explicit NUMA_NO_NODE check before test_bit(); stated logic otherwise remains unchanged.
Likely exposure
Exposure appears limited to affected Linux kernel versions using the Intel VT-d IOMMU path and encountering the described NUMA mapping condition. Systems with ACPI NUMA disabled are specifically mentioned. The provided affected-version data is broad and should be verified against distribution kernel backports.
Exploitation context
The source bundle marks KEV as false and provides no cited evidence of active exploitation. The described trigger is a kernel boot or hardware/firmware configuration condition observed through KASAN, not a documented remote attack path.
Researcher notes
The record is clear on root cause and fix direction, but incomplete on impact, exploitability, and distribution-specific affected ranges. Avoid assuming confidentiality, privilege escalation, or remote impact from the supplied evidence alone. Focus validation on kernel lineage, NUMA configuration, and presence of the upstream stable patch.
Mitigation direction
Inventory Linux kernels on Intel VT-d/IOMMU-capable systems.
Apply vendor or stable-kernel updates containing the referenced fixes.
Check Linux distribution advisories for backported status.
Review boot parameters for ACPI NUMA-related settings on affected systems.
Validation and detection
Confirm the running kernel includes the relevant stable fix commit or vendor backport.
Review boot logs for KASAN or wild-memory-access reports in dmar_parse_one_rhsa.
Validate affected hosts after kernel update with normal boot and IOMMU enabled.
Track exceptions where distro kernels use backports instead of upstream version numbers.
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-2022-50093 mapping review
Open the CVE-to-ATT&CK bridge for reviewed, inferred, or future official mappings tied to this CVE.
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.
0CVSS vectors
3Timeline events
0ADP providers
7Source links
Vulnerability timeline
Timeline events are normalized from CVE metadata, CNA source timelines, ADP timelines, and KEV metadata when present.
CVE reservedCVE Program
The CVE ID was reserved by the assigning CNA.
CVE publishedCVE Program
The CVE record was published.
Jun 18, 2025, 11:02 UTC (UTC+00:00)
CVE updatedCVE Program
The CVE record metadata indicates this as the latest update time.