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

swiotlb: use the adjusted address for the highmem page lookup

swiotlb_bounce() reads the page frame number from the slot's recorded
orig_addr, then advances orig_addr by tlb_offset to reach the address
the caller asked about. The highmem branch mixes the two: the offset
within the page comes from the adjusted address, the page from the value
before it.

Once the adjustment crosses a page boundary the pair no longer describes
one location, and the whole copy lands one page below the intended one
for a positive tlb_offset, one above for a negative one. DMA_FROM_DEVICE
writes the device data over the wrong page and leaves the intended one
stale, DMA_TO_DEVICE feeds the device from a page the mapping may not
cover. Partial syncs through dma_sync_single_range_for_*() are what make
tlb_offset non-zero.

The branch test is picked the same way, so a slot recorded in lowmem can
be adjusted into highmem and the lowmem path then hands a highmem
address to phys_to_virt().

Take both from orig_addr once it is final and keep pfn in the branch
that uses it. PhysHighMem() asks the question straight from the address,
as dma-debug already does.
Published: 2026-10-06
Score: 7.8 High
EPSS: < 1% Very Low
KEV: No
Impact: Kernel‑level memory corruption via DMA misaddressing
Action: Immediate Patch
AI Analysis

Impact

A flaw in the Linux kernel’s swiotlb DMA bounce buffer logic causes the function to mix an original address with an offset derived from an adjusted address when performing high‑memory page lookups. This miscalculation means that DMA writes may target a page adjacent to the intended target and DMA reads may retrieve data from an unintended page, leading to silent memory corruption. The flaw is a memory read/write error identified as CWE‑787 and can potentially expose or overwrite kernel memory.

Affected Systems

All Linux kernels that include the swiotlb bounce buffer mechanism are affected. The advisory specifies that the vulnerability exists in the Linux kernel source without enumerating specific version numbers, meaning any release that has not incorporated the referenced patch commits remains vulnerable.

Risk and Exploitability

The CVSS score of 7.8 reflects a high severity impact. The EPSS score of < 1 % indicates that, in practice, this issue is unlikely to be widely exploited. It is not listed in the CISA KEV catalog. Attackers would need to trigger DMA operations—typically via a device driver or firmware that initiates high‑memory mappings—or exploit local privileges to manipulate the mapping logic. Successful exploitation could result in arbitrary kernel‑space memory writes or reads, potentially enabling privilege escalation or denial‑of‑service attacks. Based on the description, the likely attack vector is a local attacker who can influence device‑driver interactions or gain kernel‑privileged execution, as exploitation requires precise control over DMA mappings.

Generated by OpenCVE AI on October 11, 2026 at 05:06 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Apply the latest Linux kernel update that contains the swiotlb high‑memory lookup fix, or manually cherry‑pick the referenced commit patches into your kernel tree.
  • Rebuild or reload device drivers that perform DMA mappings to ensure they operate correctly with the updated kernel logic.
  • If a kernel update cannot be applied immediately, disable high‑memory DMA mappings by setting the appropriate boot parameter (e.g., using the parameter that limits swiotlb to low‑memory) to mitigate the risk until a patch is available.

Generated by OpenCVE AI on October 11, 2026 at 05:06 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Debian DLA Debian DLA DLA-4850-1 linux-6.12 security update
Debian DSA Debian DSA DSA-6568-1 linux security update
History

Sun, 11 Oct 2026 02:30:00 +0000

Type Values Removed Values Added
Weaknesses CWE-125
CWE-788

Sun, 11 Oct 2026 00:30:00 +0000


Wed, 07 Oct 2026 13:00:00 +0000

Type Values Removed Values Added
Weaknesses CWE-125
CWE-788

Wed, 07 Oct 2026 10:00:00 +0000

Type Values Removed Values Added
Weaknesses CWE-119

Wed, 07 Oct 2026 07:00:00 +0000

Type Values Removed Values Added
Metrics cvssV3_1

{'score': 7.8, 'vector': 'CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H'}


Tue, 06 Oct 2026 14:45:00 +0000

Type Values Removed Values Added
Weaknesses CWE-119

Tue, 06 Oct 2026 09:00:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: swiotlb: use the adjusted address for the highmem page lookup swiotlb_bounce() reads the page frame number from the slot's recorded orig_addr, then advances orig_addr by tlb_offset to reach the address the caller asked about. The highmem branch mixes the two: the offset within the page comes from the adjusted address, the page from the value before it. Once the adjustment crosses a page boundary the pair no longer describes one location, and the whole copy lands one page below the intended one for a positive tlb_offset, one above for a negative one. DMA_FROM_DEVICE writes the device data over the wrong page and leaves the intended one stale, DMA_TO_DEVICE feeds the device from a page the mapping may not cover. Partial syncs through dma_sync_single_range_for_*() are what make tlb_offset non-zero. The branch test is picked the same way, so a slot recorded in lowmem can be adjusted into highmem and the lowmem path then hands a highmem address to phys_to_virt(). Take both from orig_addr once it is final and keep pfn in the branch that uses it. PhysHighMem() asks the question straight from the address, as dma-debug already does.
Title swiotlb: use the adjusted address for the highmem page lookup
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-10-19T09:16:25.551Z

Reserved: 2026-09-25T10:25:14.331Z

Link: CVE-2026-98254

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-10-06T09:18:14.057

Modified: 2026-10-19T10:18:26.380

Link: CVE-2026-98254

cve-icon Redhat

Severity : Moderate

Publid Date: 2026-10-06T00:00:00Z

Links: CVE-2026-98254 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-10-11T05:15:17Z

Weaknesses