CVE-2026-98242
Full vulnerability record from the local CVENow database.
Description
In the Linux kernel, the following vulnerability has been resolved: dma-buf: Fix silent overflow for phys vec to sgt In case MMIO size is bigger than 4G and peer2peer DMA goes through host bridge, we trigger a code path that assigns the total linked IOVA (which is greater than 4G) to mapped_len. Previously, `mapped_len` was declared as 32-bit `unsigned int`. When accumulating `size_t` lengths, this leads to a silent wrap-around. This truncation causes truncated lengths to be passed to functions like `fill_sg_entry()`. Fix this by changing `mapped_len` to `size_t` (64-bit). While at it, fix similar potential overflow issues in `calc_sg_nents` by using `check_add_overflow()` for `nents` and using `unsigned int` for the loop iterator in `fill_sg_entry` to match.
View original CVE JSON
{
"id": "CVE-2026-98242",
"sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"published": "2026-10-06T09:18:12.253",
"lastModified": "2026-10-19T10:18:25.103",
"vulnStatus": "Received",
"cveTags": [],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\ndma-buf: Fix silent overflow for phys vec to sgt\n\nIn case MMIO size is bigger than 4G and peer2peer DMA goes\nthrough host bridge, we trigger a code path that assigns the\ntotal linked IOVA (which is greater than 4G) to mapped_len.\n\nPreviously, `mapped_len` was declared as 32-bit `unsigned int`.\nWhen accumulating `size_t` lengths, this leads to a silent wrap-around.\nThis truncation causes truncated lengths to be passed to functions\nlike `fill_sg_entry()`.\n\nFix this by changing `mapped_len` to `size_t` (64-bit). While\nat it, fix similar potential overflow issues in `calc_sg_nents`\nby using `check_add_overflow()` for `nents` and using\n`unsigned int` for the loop iterator in `fill_sg_entry` to match."
}
],
"affected": [
{
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"affectedData": [
{
"vendor": "Linux",
"product": "Linux",
"defaultStatus": "unaffected",
"programFiles": [
"drivers/dma-buf/dma-buf-mapping.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"versions": [
{
"version": "3aa31a8bb11e47c0ff2b306988d1756b810c1c3c",
"lessThan": "6b98fd7106d4e486f432664893dcd4d6fa3a9693",
"versionType": "git",
"status": "affected"
},
{
"version": "3aa31a8bb11e47c0ff2b306988d1756b810c1c3c",
"lessThan": "b344ca94e8cc85796f16ea25e2e5a8e0303fe813",
"versionType": "git",
"status": "affected"
}
]
},
{
"vendor": "Linux",
"product": "Linux",
"defaultStatus": "affected",
"programFiles": [
"drivers/dma-buf/dma-buf-mapping.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"versions": [
{
"version": "6.19",
"status": "affected"
},
{
"version": "0",
"lessThan": "6.19",
"versionType": "semver",
"status": "unaffected"
},
{
"version": "7.2.8",
"lessThanOrEqual": "7.2.*",
"versionType": "semver",
"status": "unaffected"
},
{
"version": "7.3",
"lessThanOrEqual": "*",
"versionType": "original_commit_for_fix",
"status": "unaffected"
}
]
}
]
}
],
"metrics": {},
"references": [
{
"url": "https://git.kernel.org/stable/c/6b98fd7106d4e486f432664893dcd4d6fa3a9693",
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
},
{
"url": "https://git.kernel.org/stable/c/b344ca94e8cc85796f16ea25e2e5a8e0303fe813",
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
}
]
}