dmaengine: mmp_pdma: fix wrong sg length in mmp_pdma_prep_slave_sg() (Linux Linux)
At a glance
- Source
- NVD
- EPSS
- EPSS 0.18 % · percentile 8 ()
- State
- PUBLISHED
- Published
- Updated
- Assigner
- Linux
- NVD status
- Received
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.
References
- https://git.kernel.org/stable/c/f448a5f5bd10d792440a1b08cf2e8f311767032d
- https://git.kernel.org/stable/c/2148db529f082d6e3ca95413bf943442f4ef30cc
- https://git.kernel.org/stable/c/d920c07aa6d89ec11afdb6976aafaee9563a5234
- https://git.kernel.org/stable/c/4a33886057e6d127555efb022879c583e966acc5
- https://git.kernel.org/stable/c/88a505330eb06128f7ce79a4c5e4832b7601b3d1
- https://git.kernel.org/stable/c/bae65e4925928f77824ca0103122e2ed20ef5802
- https://git.kernel.org/stable/c/54ccc01012a240476edf641bf1a2b8bff54fe6ae
- https://git.kernel.org/stable/c/075bc7b1d3dde5ed43fbaabbc1a69f09b7fc3a47
European references
- ENISA EUVD · EUVD-2026-93283
- GCVE · GCVE-0-2026-98298
CERT-FR advisories
- CERTFR-2026-AVI-1385 — Multiples vulnérabilités dans les produits VMware · cert.ssi.gouv.fr
- CERTFR-2026-AVI-1375 — Multiples vulnérabilités dans le noyau Linux de Debian LTS · cert.ssi.gouv.fr
- CERTFR-2026-AVI-1374 — Multiples vulnérabilités dans le noyau Linux de Debian · cert.ssi.gouv.fr
Affected products
| Product | Versions |
|---|---|
| Linux · Linux | affected c8acd6aa6bed3c0fd7898202f4ebc534db9085f2 < f448a5f5bd10d792440a1b08cf2e8f311767032d ; affected c8acd6aa6bed3c0fd7898202f4ebc534db9085f2 < 2148db529f082d6e3ca95413bf943442f4ef30cc ; affected c8acd6aa6bed3c0fd7898202f4ebc534db9085f2 < d920c07aa6d89ec11afdb6976aafaee9563a5234 ; affected c8acd6aa6bed3c0fd7898202f4ebc534db9085f2 < 4a33886057e6d127555efb022879c583e966acc5 ; affected c8acd6aa6bed3c0fd7898202f4ebc534db9085f2 < 88a505330eb06128f7ce79a4c5e4832b7601b3d1 ; affected c8acd6aa6bed3c0fd7898202f4ebc534db9085f2 < bae65e4925928f77824ca0103122e2ed20ef5802 |
| Linux · Linux | affected 3.7 ; unaffected 0 < 3.7 ; unaffected 5.10.271 ≤ 5.10.* ; unaffected 5.15.222 ≤ 5.15.* ; unaffected 6.1.189 ≤ 6.1.* ; unaffected 6.6.158 ≤ 6.6.* |
Sources
| Source | Licence |
|---|---|
| CVE List (CVEProject cvelistV5) | CVE Program Terms of Use |
| EPSS (FIRST.org) | FIRST — attribution requested |
| ENISA EUVD | ENISA — reproduction authorised, source acknowledged |
| CERT-FR (ANSSI) | Licence Ouverte / Etalab 2.0 |
| NVD (NIST) via fkie-cad/nvd-json-data-feeds | Public domain — this product uses data from the NVD API but is not endorsed or certified by the NVD |