In the Linux kernel, the following vulnerability has been resolved:
mmc: mmci: stm32: fix DMA API overlapping mappings warning
Turning on CONFIGDMAAPIDEBUGSG results in the following warning:
DMA-API: mmci-pl18x 48220000.mmc: cacheline tracking EEXIST, overlapping mappings aren't supported WARNING: CPU: 1 PID: 51 at kernel/dma/debug.c:568 adddmaentry+0x234/0x2f4 Modules linked in: CPU: 1 PID: 51 Comm: kworker/1:2 Not tainted 6.1.28 #1 Hardware name: STMicroelectronics STM32MP257F-EV1 Evaluation Board (DT) Workqueue: eventsfreezable mmcrescan Call trace: adddmaentry+0x234/0x2f4 debugdmamapsg+0x198/0x350 _dmamapsgattrs+0xa0/0x110 dmamapsgattrs+0x10/0x2c sdmmcidmaprepdata+0x80/0xc0 mmciprepdata+0x38/0x84 mmcistartdata+0x108/0x2dc mmcirequest+0xe4/0x190 _mmcstartrequest+0x68/0x140 mmcstartrequest+0x94/0xc0 mmcwaitforreq+0x70/0x100 mmcsendtuning+0x108/0x1ac sdmmcexecutetuning+0x14c/0x210 mmcexecutetuning+0x48/0xec mmcsdinituhscard.part.0+0x208/0x464 mmcsdinitcard+0x318/0x89c mmcattachsd+0xe4/0x180 mmcrescan+0x244/0x320
DMA API debug brings to light leaking dma-mappings as dmamapsg and dmaunmapsg are not correctly balanced.
If an error occurs in mmcicmdirq function, only mmcidmaerror function is called and as this API is not managed on stm32 variant, dmaunmapsg is never called in this error path.
[
{
"id": "CVE-2024-26787-28b2bfc7",
"deprecated": false,
"signature_version": "v1",
"signature_type": "Function",
"target": {
"file": "drivers/mmc/host/mmci_stm32_sdmmc.c",
"function": "sdmmc_idma_finalize"
},
"digest": {
"function_hash": "210557250420746647305491178385653105677",
"length": 178.0
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@70af82bb9c897faa25a44e4181f36c60312b71ef"
},
{
"id": "CVE-2024-26787-2a0f2b1a",
"deprecated": false,
"signature_version": "v1",
"signature_type": "Line",
"target": {
"file": "drivers/mmc/host/mmci_stm32_sdmmc.c"
},
"digest": {
"line_hashes": [
"265304181363740959565149625215855244008",
"241968116207725502884634723078380034749",
"96914886526426716354216068167024434291",
"300567873444255005436483369169589472020",
"281244740005624979058775114587949330983",
"143748947746449050022810843339434426121",
"29642674898535162248130846043109232484",
"66994791925508294000990720173449355251",
"263504774401159928092514417738960947060",
"147884498635914003135633627323430708312",
"59266194969903528351232242185197604564",
"256293619578738599641292837884311528998",
"199002045139151938264183729568332134577"
],
"threshold": 0.9
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@70af82bb9c897faa25a44e4181f36c60312b71ef"
},
{
"id": "CVE-2024-26787-3bd260a7",
"deprecated": false,
"signature_version": "v1",
"signature_type": "Function",
"target": {
"file": "drivers/mmc/host/mmci_stm32_sdmmc.c",
"function": "sdmmc_idma_finalize"
},
"digest": {
"function_hash": "210557250420746647305491178385653105677",
"length": 178.0
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@176e66269f0de327375fc0ea51c12c2f5a97e4c4"
},
{
"id": "CVE-2024-26787-45dc47f4",
"deprecated": false,
"signature_version": "v1",
"signature_type": "Function",
"target": {
"file": "drivers/mmc/host/mmci_stm32_sdmmc.c",
"function": "sdmmc_idma_finalize"
},
"digest": {
"function_hash": "210557250420746647305491178385653105677",
"length": 178.0
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@6b1ba3f9040be5efc4396d86c9752cdc564730be"
},
{
"id": "CVE-2024-26787-473b2781",
"deprecated": false,
"signature_version": "v1",
"signature_type": "Function",
"target": {
"file": "drivers/mmc/host/mmci_stm32_sdmmc.c",
"function": "sdmmc_idma_finalize"
},
"digest": {
"function_hash": "210557250420746647305491178385653105677",
"length": 178.0
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@5ae5060e17a3fc38e54c3e5bd8abd6b1d5bfae7c"
},
{
"id": "CVE-2024-26787-48481eca",
"deprecated": false,
"signature_version": "v1",
"signature_type": "Line",
"target": {
"file": "drivers/mmc/host/mmci_stm32_sdmmc.c"
},
"digest": {
"line_hashes": [
"265304181363740959565149625215855244008",
"241968116207725502884634723078380034749",
"96914886526426716354216068167024434291",
"300567873444255005436483369169589472020",
"281244740005624979058775114587949330983",
"143748947746449050022810843339434426121",
"29642674898535162248130846043109232484",
"66994791925508294000990720173449355251",
"263504774401159928092514417738960947060",
"147884498635914003135633627323430708312",
"59266194969903528351232242185197604564",
"256293619578738599641292837884311528998",
"199002045139151938264183729568332134577"
],
"threshold": 0.9
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@0224cbc53ba82b84affa7619b6d1b1a254bc2c53"
},
{
"id": "CVE-2024-26787-6065d8ce",
"deprecated": false,
"signature_version": "v1",
"signature_type": "Function",
"target": {
"file": "drivers/mmc/host/mmci_stm32_sdmmc.c",
"function": "sdmmc_idma_finalize"
},
"digest": {
"function_hash": "210557250420746647305491178385653105677",
"length": 178.0
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@0224cbc53ba82b84affa7619b6d1b1a254bc2c53"
},
{
"id": "CVE-2024-26787-65931e89",
"deprecated": false,
"signature_version": "v1",
"signature_type": "Function",
"target": {
"file": "drivers/mmc/host/mmci_stm32_sdmmc.c",
"function": "sdmmc_idma_start"
},
"digest": {
"function_hash": "282645358260011432995011966066907188250",
"length": 1292.0
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@176e66269f0de327375fc0ea51c12c2f5a97e4c4"
},
{
"id": "CVE-2024-26787-787d0b07",
"deprecated": false,
"signature_version": "v1",
"signature_type": "Function",
"target": {
"file": "drivers/mmc/host/mmci_stm32_sdmmc.c",
"function": "sdmmc_idma_start"
},
"digest": {
"function_hash": "282645358260011432995011966066907188250",
"length": 1292.0
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@70af82bb9c897faa25a44e4181f36c60312b71ef"
},
{
"id": "CVE-2024-26787-7c9f1116",
"deprecated": false,
"signature_version": "v1",
"signature_type": "Line",
"target": {
"file": "drivers/mmc/host/mmci_stm32_sdmmc.c"
},
"digest": {
"line_hashes": [
"265304181363740959565149625215855244008",
"241968116207725502884634723078380034749",
"96914886526426716354216068167024434291",
"300567873444255005436483369169589472020",
"281244740005624979058775114587949330983",
"143748947746449050022810843339434426121",
"29642674898535162248130846043109232484",
"66994791925508294000990720173449355251",
"263504774401159928092514417738960947060",
"147884498635914003135633627323430708312",
"59266194969903528351232242185197604564",
"256293619578738599641292837884311528998",
"199002045139151938264183729568332134577"
],
"threshold": 0.9
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@d610a307225951929b9dff807788439454476f85"
},
{
"id": "CVE-2024-26787-8d25c44c",
"deprecated": false,
"signature_version": "v1",
"signature_type": "Function",
"target": {
"file": "drivers/mmc/host/mmci_stm32_sdmmc.c",
"function": "sdmmc_idma_start"
},
"digest": {
"function_hash": "282645358260011432995011966066907188250",
"length": 1292.0
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@5ae5060e17a3fc38e54c3e5bd8abd6b1d5bfae7c"
},
{
"id": "CVE-2024-26787-966e2008",
"deprecated": false,
"signature_version": "v1",
"signature_type": "Function",
"target": {
"file": "drivers/mmc/host/mmci_stm32_sdmmc.c",
"function": "sdmmc_idma_start"
},
"digest": {
"function_hash": "282645358260011432995011966066907188250",
"length": 1292.0
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@d610a307225951929b9dff807788439454476f85"
},
{
"id": "CVE-2024-26787-bce601f9",
"deprecated": false,
"signature_version": "v1",
"signature_type": "Line",
"target": {
"file": "drivers/mmc/host/mmci_stm32_sdmmc.c"
},
"digest": {
"line_hashes": [
"265304181363740959565149625215855244008",
"241968116207725502884634723078380034749",
"96914886526426716354216068167024434291",
"300567873444255005436483369169589472020",
"281244740005624979058775114587949330983",
"143748947746449050022810843339434426121",
"29642674898535162248130846043109232484",
"66994791925508294000990720173449355251",
"263504774401159928092514417738960947060",
"147884498635914003135633627323430708312",
"59266194969903528351232242185197604564",
"256293619578738599641292837884311528998",
"199002045139151938264183729568332134577"
],
"threshold": 0.9
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@176e66269f0de327375fc0ea51c12c2f5a97e4c4"
},
{
"id": "CVE-2024-26787-cceb7e30",
"deprecated": false,
"signature_version": "v1",
"signature_type": "Line",
"target": {
"file": "drivers/mmc/host/mmci_stm32_sdmmc.c"
},
"digest": {
"line_hashes": [
"265304181363740959565149625215855244008",
"241968116207725502884634723078380034749",
"96914886526426716354216068167024434291",
"300567873444255005436483369169589472020",
"281244740005624979058775114587949330983",
"143748947746449050022810843339434426121",
"29642674898535162248130846043109232484",
"66994791925508294000990720173449355251",
"263504774401159928092514417738960947060",
"147884498635914003135633627323430708312",
"59266194969903528351232242185197604564",
"256293619578738599641292837884311528998",
"199002045139151938264183729568332134577"
],
"threshold": 0.9
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@6b1ba3f9040be5efc4396d86c9752cdc564730be"
},
{
"id": "CVE-2024-26787-e2009288",
"deprecated": false,
"signature_version": "v1",
"signature_type": "Function",
"target": {
"file": "drivers/mmc/host/mmci_stm32_sdmmc.c",
"function": "sdmmc_idma_start"
},
"digest": {
"function_hash": "282645358260011432995011966066907188250",
"length": 1292.0
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@0224cbc53ba82b84affa7619b6d1b1a254bc2c53"
},
{
"id": "CVE-2024-26787-e55d5e38",
"deprecated": false,
"signature_version": "v1",
"signature_type": "Function",
"target": {
"file": "drivers/mmc/host/mmci_stm32_sdmmc.c",
"function": "sdmmc_idma_start"
},
"digest": {
"function_hash": "282645358260011432995011966066907188250",
"length": 1292.0
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@6b1ba3f9040be5efc4396d86c9752cdc564730be"
},
{
"id": "CVE-2024-26787-e7bece4c",
"deprecated": false,
"signature_version": "v1",
"signature_type": "Line",
"target": {
"file": "drivers/mmc/host/mmci_stm32_sdmmc.c"
},
"digest": {
"line_hashes": [
"265304181363740959565149625215855244008",
"241968116207725502884634723078380034749",
"96914886526426716354216068167024434291",
"300567873444255005436483369169589472020",
"281244740005624979058775114587949330983",
"143748947746449050022810843339434426121",
"29642674898535162248130846043109232484",
"66994791925508294000990720173449355251",
"263504774401159928092514417738960947060",
"147884498635914003135633627323430708312",
"59266194969903528351232242185197604564",
"256293619578738599641292837884311528998",
"199002045139151938264183729568332134577"
],
"threshold": 0.9
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@5ae5060e17a3fc38e54c3e5bd8abd6b1d5bfae7c"
},
{
"id": "CVE-2024-26787-f64b67b5",
"deprecated": false,
"signature_version": "v1",
"signature_type": "Function",
"target": {
"file": "drivers/mmc/host/mmci_stm32_sdmmc.c",
"function": "sdmmc_idma_finalize"
},
"digest": {
"function_hash": "210557250420746647305491178385653105677",
"length": 178.0
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@d610a307225951929b9dff807788439454476f85"
}
]