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

dmaengine: mmp_pdma: fix wrong sg length in mmp_pdma_prep_slave_sg()

In mmp_pdma_prep_slave_sg(), for_each_sg() iterates the scatterlist
putting each entry into 'sg', but the entry length is read from 'sgl'
(the list head) instead of 'sg' (the current entry):

for_each_sg(sgl, sg, sg_len, i) {
addr = sg_dma_address(sg);
avail = sg_dma_len(sgl); /* should be 'sg' */

Consequently 'avail' is always the length of the first entry. For
multi-sg lists this causes out-of-bounds reads when a later entry is
shorter than the first, and silent data loss when it is longer.
Single-sg or uniformly-sized lists happen to mask the issue.
Published: 2026-10-06
Score: 7.0 High
EPSS: < 1% Very Low
KEV: No
Impact: Information disclosure and data loss via out‑of‑bounds read
Action: Patch
AI Analysis

Impact

The Linux kernel mmp_pdma driver mistakenly reads the length of each scatter‑list entry from the list head instead of the current entry when preparing a DMA transfer. This causes the data length used for each transfer to be based on the first element, so if later elements are shorter the driver reads beyond the intended bounds, leaking kernel memory, and if they are larger the driver silently truncates data. The flaw can lead to information disclosure or corruption of data transmitted by the device.

Affected Systems

The vulnerability exists in the mmp_pdma component of the Linux kernel, as indicated by the CPE string for all kernel releases. Any kernel build that includes this driver before the fixed commit is affected; the patch does not specify a version range beyond the general inclusion of the driver. Systems running unpatched kernels with the mmp_pdma driver in use are thus at risk.

Risk and Exploitability

The EPSS score is less than 1%, indicating a very low probability of exploitation, and the vulnerability is not listed in the CISA KEV catalog. The CVSS score of 7.0 reflects moderate severity. Based on the description, the likely attack vector is local privileged or kernel‑mode access that can invoke the mmp_pdma DMA routine; this typically requires exploitation of a device driver or root access. The risk of successful exploitation is low under normal conditions, but the potential impact of memory disclosure or data corruption justifies prompt patching.

Generated by OpenCVE AI on October 11, 2026 at 16:41 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade the Linux kernel to a revision that includes the mmp_pdma patch
  • If an update cannot be applied immediately, disable the mmp_pdma driver or block DMA operations on the affected hardware
  • Apply a local code modification that corrects the scatter‑list length reading to use the current entry

Generated by OpenCVE AI on October 11, 2026 at 16:41 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Debian DLA Debian DLA DLA-4841-1 linux security update
Debian DLA Debian DLA DLA-4850-1 linux-6.12 security update
Debian DSA Debian DSA DSA-6568-1 linux security update
Ubuntu USN Ubuntu USN USN-8961-1 Linux kernel vulnerabilities
History

Sun, 11 Oct 2026 12:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-125
References
Metrics threat_severity

None

cvssV3_1

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

threat_severity

Moderate


Tue, 06 Oct 2026 18:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-119

Tue, 06 Oct 2026 13:30: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: dmaengine: mmp_pdma: fix wrong sg length in mmp_pdma_prep_slave_sg() In mmp_pdma_prep_slave_sg(), for_each_sg() iterates the scatterlist putting each entry into 'sg', but the entry length is read from 'sgl' (the list head) instead of 'sg' (the current entry): for_each_sg(sgl, sg, sg_len, i) { addr = sg_dma_address(sg); avail = sg_dma_len(sgl); /* should be 'sg' */ Consequently 'avail' is always the length of the first entry. For multi-sg lists this causes out-of-bounds reads when a later entry is shorter than the first, and silent data loss when it is longer. Single-sg or uniformly-sized lists happen to mask the issue.
Title dmaengine: mmp_pdma: fix wrong sg length in mmp_pdma_prep_slave_sg()
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:17:09.166Z

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

Link: CVE-2026-98298

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

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

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

Link: CVE-2026-98298

cve-icon Redhat

Severity : Moderate

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

Links: CVE-2026-98298 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-10-11T16:45:06Z

Weaknesses