CVE-2024-44949 (GCVE-0-2024-44949)
Vulnerability from cvelistv5
Published
2024-09-04 18:35
Modified
2026-08-05 11:37
Summary
In the Linux kernel, the following vulnerability has been resolved: parisc: fix a possible DMA corruption ARCH_DMA_MINALIGN was defined as 16 - this is too small - it may be possible that two unrelated 16-byte allocations share a cache line. If one of these allocations is written using DMA and the other is written using cached write, the value that was written with DMA may be corrupted. This commit changes ARCH_DMA_MINALIGN to be 128 on PA20 and 32 on PA1.1 - that's the largest possible cache line size. As different parisc microarchitectures have different cache line size, we define arch_slab_minalign(), cache_line_size() and dma_get_cache_alignment() so that the kernel may tune slab cache parameters dynamically, based on the detected cache line size.
Impacted products
Vendor Product Version
Linux Linux Version: a01fece2e4185ac173abd16d10304d73d47ebf00
Version: a01fece2e4185ac173abd16d10304d73d47ebf00
Version: a01fece2e4185ac173abd16d10304d73d47ebf00
Version: a01fece2e4185ac173abd16d10304d73d47ebf00
Create a notification for this product.
Show details on NVD website


{
  "containers": {
    "adp": [
      {
        "metrics": [
          {
            "other": {
              "content": {
                "id": "CVE-2024-44949",
                "options": [
                  {
                    "Exploitation": "none"
                  },
                  {
                    "Automatable": "no"
                  },
                  {
                    "Technical Impact": "partial"
                  }
                ],
                "role": "CISA Coordinator",
                "timestamp": "2024-09-10T17:40:26.389987Z",
                "version": "2.0.3"
              },
              "type": "ssvc"
            }
          }
        ],
        "providerMetadata": {
          "dateUpdated": "2024-09-12T17:33:37.283Z",
          "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
          "shortName": "CISA-ADP"
        },
        "title": "CISA ADP Vulnrichment"
      },
      {
        "providerMetadata": {
          "dateUpdated": "2025-11-03T22:13:59.062Z",
          "orgId": "af854a3a-2127-422b-91ae-364da2661108",
          "shortName": "CVE"
        },
        "references": [
          {
            "url": "https://lists.debian.org/debian-lts-announce/2025/01/msg00001.html"
          }
        ],
        "title": "CVE Program Container"
      }
    ],
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "arch/parisc/Kconfig",
            "arch/parisc/include/asm/cache.h"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "00baca74fb5879e5f9034b6156671301f500f8ee",
              "status": "affected",
              "version": "a01fece2e4185ac173abd16d10304d73d47ebf00",
              "versionType": "git"
            },
            {
              "lessThan": "642a0b7453daff0295310774016fcb56d1f5bc7f",
              "status": "affected",
              "version": "a01fece2e4185ac173abd16d10304d73d47ebf00",
              "versionType": "git"
            },
            {
              "lessThan": "533de2f470baac40d3bf622fe631f15231a03c9f",
              "status": "affected",
              "version": "a01fece2e4185ac173abd16d10304d73d47ebf00",
              "versionType": "git"
            },
            {
              "lessThan": "7ae04ba36b381bffe2471eff3a93edced843240f",
              "status": "affected",
              "version": "a01fece2e4185ac173abd16d10304d73d47ebf00",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "arch/parisc/Kconfig",
            "arch/parisc/include/asm/cache.h"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "4.4"
            },
            {
              "lessThan": "4.4",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.1.*",
              "status": "unaffected",
              "version": "6.1.119",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.6.*",
              "status": "unaffected",
              "version": "6.6.46",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.10.*",
              "status": "unaffected",
              "version": "6.10.5",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "6.11",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.1.119",
                  "versionStartIncluding": "4.4",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.6.46",
                  "versionStartIncluding": "4.4",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.10.5",
                  "versionStartIncluding": "4.4",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.11",
                  "versionStartIncluding": "4.4",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "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\u0027s 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": {
            "baseScore": 7.8,
            "baseSeverity": "HIGH",
            "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
            "version": "3.1"
          },
          "scenarios": [
            {
              "lang": "en",
              "value": "AV:L - The defect is in the parisc slab/DMA alignment definitions and manifests through the machine\u0027s 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 \u2014 with only 16-byte slab alignment against a 32/128-byte hardware line, DMA buffers always share lines with unrelated allocations \u2014 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\u0027d 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 \u2014 the damage is a cache-maintenance artifact within kernel memory \u2014 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\u0027d 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 \u2014 lost pointer and refcount stores give control-flow-relevant corruption \u2014 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."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-05T11:37:14.891Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "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"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2024-44949",
    "datePublished": "2024-09-04T18:35:49.788Z",
    "dateReserved": "2024-08-21T05:34:56.665Z",
    "dateUpdated": "2026-08-05T11:37:14.891Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "vulnrichment": {
      "containers": "{\"adp\": [{\"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\"}}, {\"title\": \"CISA ADP Vulnrichment\", \"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\"}}}], \"providerMetadata\": {\"orgId\": \"134c704f-9b21-4f2e-91b3-4a467353bcc0\", \"shortName\": \"CISA-ADP\", \"dateUpdated\": \"2024-09-11T12:42:27.692Z\"}}], \"cna\": {\"title\": \"parisc: fix a possible DMA corruption\", \"metrics\": [{\"cvssV3_1\": {\"version\": \"3.1\", \"baseScore\": 7.8, \"baseSeverity\": \"HIGH\", \"vectorString\": \"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H\"}, \"scenarios\": [{\"lang\": \"en\", \"value\": \"AV:L - The defect is in the parisc slab/DMA alignment definitions and manifests through the machine\u0027s 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 \\u2014 with only 16-byte slab alignment against a 32/128-byte hardware line, DMA buffers always share lines with unrelated allocations \\u2014 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\u0027d 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 \\u2014 the damage is a cache-maintenance artifact within kernel memory \\u2014 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\u0027d 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 \\u2014 lost pointer and refcount stores give control-flow-relevant corruption \\u2014 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\": [{\"repo\": \"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\", \"vendor\": \"Linux\", \"product\": \"Linux\", \"versions\": [{\"status\": \"affected\", \"version\": \"a01fece2e4185ac173abd16d10304d73d47ebf00\", \"lessThan\": \"00baca74fb5879e5f9034b6156671301f500f8ee\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"a01fece2e4185ac173abd16d10304d73d47ebf00\", \"lessThan\": \"642a0b7453daff0295310774016fcb56d1f5bc7f\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"a01fece2e4185ac173abd16d10304d73d47ebf00\", \"lessThan\": \"533de2f470baac40d3bf622fe631f15231a03c9f\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"a01fece2e4185ac173abd16d10304d73d47ebf00\", \"lessThan\": \"7ae04ba36b381bffe2471eff3a93edced843240f\", \"versionType\": \"git\"}], \"programFiles\": [\"arch/parisc/Kconfig\", \"arch/parisc/include/asm/cache.h\"], \"defaultStatus\": \"unaffected\"}, {\"repo\": \"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\", \"vendor\": \"Linux\", \"product\": \"Linux\", \"versions\": [{\"status\": \"affected\", \"version\": \"4.4\"}, {\"status\": \"unaffected\", \"version\": \"0\", \"lessThan\": \"4.4\", \"versionType\": \"semver\"}, {\"status\": \"unaffected\", \"version\": \"6.1.119\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"6.1.*\"}, {\"status\": \"unaffected\", \"version\": \"6.6.46\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"6.6.*\"}, {\"status\": \"unaffected\", \"version\": \"6.10.5\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"6.10.*\"}, {\"status\": \"unaffected\", \"version\": \"6.11\", \"versionType\": \"original_commit_for_fix\", \"lessThanOrEqual\": \"*\"}], \"programFiles\": [\"arch/parisc/Kconfig\", \"arch/parisc/include/asm/cache.h\"], \"defaultStatus\": \"affected\"}], \"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\"}], \"x_generator\": {\"engine\": \"bippy-1.2.0\"}, \"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\u0027s 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.\"}], \"cpeApplicability\": [{\"nodes\": [{\"negate\": false, \"cpeMatch\": [{\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"6.1.119\", \"versionStartIncluding\": \"4.4\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"6.6.46\", \"versionStartIncluding\": \"4.4\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"6.10.5\", \"versionStartIncluding\": \"4.4\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"6.11\", \"versionStartIncluding\": \"4.4\"}], \"operator\": \"OR\"}]}], \"providerMetadata\": {\"orgId\": \"416baaa9-dc9f-4396-8d5f-8c081fb06d67\", \"shortName\": \"Linux\", \"dateUpdated\": \"2026-08-05T11:37:14.891Z\"}}}",
      "cveMetadata": "{\"cveId\": \"CVE-2024-44949\", \"state\": \"PUBLISHED\", \"dateUpdated\": \"2026-08-05T11:37:14.891Z\", \"dateReserved\": \"2024-08-21T05:34:56.665Z\", \"assignerOrgId\": \"416baaa9-dc9f-4396-8d5f-8c081fb06d67\", \"datePublished\": \"2024-09-04T18:35:49.788Z\", \"assignerShortName\": \"Linux\"}",
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }
  }
}


Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Sightings

Author Source Type Date

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or seen somewhere by the user.
  • Confirmed: The vulnerability is confirmed from an analyst perspective.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • Exploited: This vulnerability was exploited and seen by the user reporting the sighting.
  • Patched: This vulnerability was successfully patched by the user reporting the sighting.
  • Not exploited: This vulnerability was not exploited or seen by the user reporting the sighting.
  • Not confirmed: The user expresses doubt about the veracity of the vulnerability.
  • Not patched: This vulnerability was not successfully patched by the user reporting the sighting.


Loading…

Loading…