{ "dataType": "CVE_RECORD", "dataVersion": "5.2", "cveMetadata": { "cveId": "CVE-2024-44949", "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "state": "PUBLISHED", "assignerShortName": "Linux", "dateReserved": "2024-08-21T05:34:56.665Z", "datePublished": "2024-09-04T18:35:49.788Z", "dateUpdated": "2026-08-05T11:37:14.891Z" }, "containers": { "cna": { "providerMetadata": { "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "shortName": "Linux", "dateUpdated": "2026-08-05T11:37:14.891Z" }, "descriptions": [ { "lang": "en", "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nparisc: fix a possible DMA corruption\n\nARCH_DMA_MINALIGN was defined as 16 - this is too small - it may be\npossible that two unrelated 16-byte allocations share a cache line. If\none of these allocations is written using DMA and the other is written\nusing cached write, the value that was written with DMA may be\ncorrupted.\n\nThis commit changes ARCH_DMA_MINALIGN to be 128 on PA20 and 32 on PA1.1 -\nthat's the largest possible cache line size.\n\nAs different parisc microarchitectures have different cache line size, we\ndefine arch_slab_minalign(), cache_line_size() and\ndma_get_cache_alignment() so that the kernel may tune slab cache\nparameters dynamically, based on the detected cache line size." } ], "metrics": [ { "cvssV3_1": { "version": "3.1", "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "baseScore": 7.8, "baseSeverity": "HIGH" }, "scenarios": [ { "lang": "en", "value": "AV:L - The defect is in the parisc slab/DMA alignment definitions and manifests through the machine's own DMA-capable I/O paths; there is no remote-input parsing path, so an attacker needs local access to drive I/O and small slab allocations concurrently.\nAC:L - Cache-line sharing is structural rather than lucky — with only 16-byte slab alignment against a 32/128-byte hardware line, DMA buffers always share lines with unrelated allocations — and the attacker drives both sides of the race (I/O generating DMA, and syscalls dirtying neighbouring kmalloc objects) with unlimited retries.\nPR:L - Ordinary unprivileged operations suffice: file reads/writes and socket traffic trigger driver DMA on kmalloc'd buffers, while common syscalls allocate and write the small slab objects sharing those cache lines. No capability check exists anywhere on the path.\nUI:N - No victim action is required; corruption occurs during normal kernel I/O processing initiated entirely by the attacker.\nS:U - The device does not write outside its mapped buffer — the damage is a cache-maintenance artifact within kernel memory — so both the vulnerable and impacted components are the kernel itself, with no crossing of a privilege or IOMMU authority boundary.\nC:H - Device-DMA'd data lands in cache lines covering unrelated kernel objects and the invalidate-without-writeback reverts neighbours to stale contents, which can resurrect freed pointers and yield use-after-free style read primitives over kernel memory.\nI:H - This is silent memory corruption of arbitrary adjacent kernel slab objects — lost pointer and refcount stores give control-flow-relevant corruption — and it equally corrupts in-flight DMA payloads, meaning block I/O data written to or read from storage can be altered.\nA:H - Discarded writes to unrelated kernel structures and corrupted DMA data lead to inconsistent kernel state, use-after-free, oops and panic, as well as filesystem corruption on affected PA-RISC systems." } ] } ], "affected": [ { "product": "Linux", "vendor": "Linux", "defaultStatus": "unaffected", "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git", "programFiles": [ "arch/parisc/Kconfig", "arch/parisc/include/asm/cache.h" ], "versions": [ { "version": "a01fece2e4185ac173abd16d10304d73d47ebf00", "lessThan": "00baca74fb5879e5f9034b6156671301f500f8ee", "status": "affected", "versionType": "git" }, { "version": "a01fece2e4185ac173abd16d10304d73d47ebf00", "lessThan": "642a0b7453daff0295310774016fcb56d1f5bc7f", "status": "affected", "versionType": "git" }, { "version": "a01fece2e4185ac173abd16d10304d73d47ebf00", "lessThan": "533de2f470baac40d3bf622fe631f15231a03c9f", "status": "affected", "versionType": "git" }, { "version": "a01fece2e4185ac173abd16d10304d73d47ebf00", "lessThan": "7ae04ba36b381bffe2471eff3a93edced843240f", "status": "affected", "versionType": "git" } ] }, { "product": "Linux", "vendor": "Linux", "defaultStatus": "affected", "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git", "programFiles": [ "arch/parisc/Kconfig", "arch/parisc/include/asm/cache.h" ], "versions": [ { "version": "4.4", "status": "affected" }, { "version": "0", "lessThan": "4.4", "status": "unaffected", "versionType": "semver" }, { "version": "6.1.119", "lessThanOrEqual": "6.1.*", "status": "unaffected", "versionType": "semver" }, { "version": "6.6.46", "lessThanOrEqual": "6.6.*", "status": "unaffected", "versionType": "semver" }, { "version": "6.10.5", "lessThanOrEqual": "6.10.*", "status": "unaffected", "versionType": "semver" }, { "version": "6.11", "lessThanOrEqual": "*", "status": "unaffected", "versionType": "original_commit_for_fix" } ] } ], "cpeApplicability": [ { "nodes": [ { "operator": "OR", "negate": false, "cpeMatch": [ { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "4.4", "versionEndExcluding": "6.1.119" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "4.4", "versionEndExcluding": "6.6.46" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "4.4", "versionEndExcluding": "6.10.5" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "4.4", "versionEndExcluding": "6.11" } ] } ] } ], "references": [ { "url": "https://git.kernel.org/stable/c/00baca74fb5879e5f9034b6156671301f500f8ee" }, { "url": "https://git.kernel.org/stable/c/642a0b7453daff0295310774016fcb56d1f5bc7f" }, { "url": "https://git.kernel.org/stable/c/533de2f470baac40d3bf622fe631f15231a03c9f" }, { "url": "https://git.kernel.org/stable/c/7ae04ba36b381bffe2471eff3a93edced843240f" } ], "title": "parisc: fix a possible DMA corruption", "x_generator": { "engine": "bippy-1.2.0" } }, "adp": [ { "metrics": [ { "other": { "type": "ssvc", "content": { "id": "CVE-2024-44949", "role": "CISA Coordinator", "options": [ { "Exploitation": "none" }, { "Automatable": "no" }, { "Technical Impact": "partial" } ], "version": "2.0.3", "timestamp": "2024-09-10T17:40:26.389987Z" } } } ], "title": "CISA ADP Vulnrichment", "providerMetadata": { "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0", "shortName": "CISA-ADP", "dateUpdated": "2024-09-12T17:33:37.283Z" } }, { "title": "CVE Program Container", "references": [ { "url": "https://lists.debian.org/debian-lts-announce/2025/01/msg00001.html" } ], "providerMetadata": { "orgId": "af854a3a-2127-422b-91ae-364da2661108", "shortName": "CVE", "dateUpdated": "2025-11-03T22:13:59.062Z" } } ] } }