CVE-2024-40974 (GCVE-0-2024-40974)
Vulnerability from cvelistv5
Published
2024-07-12 12:32
Modified
2026-08-05 11:34
Summary
In the Linux kernel, the following vulnerability has been resolved: powerpc/pseries: Enforce hcall result buffer validity and size plpar_hcall(), plpar_hcall9(), and related functions expect callers to provide valid result buffers of certain minimum size. Currently this is communicated only through comments in the code and the compiler has no idea. For example, if I write a bug like this: long retbuf[PLPAR_HCALL_BUFSIZE]; // should be PLPAR_HCALL9_BUFSIZE plpar_hcall9(H_ALLOCATE_VAS_WINDOW, retbuf, ...); This compiles with no diagnostics emitted, but likely results in stack corruption at runtime when plpar_hcall9() stores results past the end of the array. (To be clear this is a contrived example and I have not found a real instance yet.) To make this class of error less likely, we can use explicitly-sized array parameters instead of pointers in the declarations for the hcall APIs. When compiled with -Warray-bounds[1], the code above now provokes a diagnostic like this: error: array argument is too small; is of size 32, callee requires at least 72 [-Werror,-Warray-bounds] 60 | plpar_hcall9(H_ALLOCATE_VAS_WINDOW, retbuf, | ^ ~~~~~~ [1] Enabled for LLVM builds but not GCC for now. See commit 0da6e5fd6c37 ("gcc: disable '-Warray-bounds' for gcc-13 too") and related changes.
Impacted products
Vendor Product Version
Linux Linux Version: b9377ffc3a03cde558d76349a262a1adbb6d3112
Version: b9377ffc3a03cde558d76349a262a1adbb6d3112
Version: b9377ffc3a03cde558d76349a262a1adbb6d3112
Version: b9377ffc3a03cde558d76349a262a1adbb6d3112
Version: b9377ffc3a03cde558d76349a262a1adbb6d3112
Version: b9377ffc3a03cde558d76349a262a1adbb6d3112
Version: b9377ffc3a03cde558d76349a262a1adbb6d3112
Version: b9377ffc3a03cde558d76349a262a1adbb6d3112
Create a notification for this product.
Show details on NVD website


{
  "containers": {
    "adp": [
      {
        "providerMetadata": {
          "dateUpdated": "2025-11-03T21:58:39.132Z",
          "orgId": "af854a3a-2127-422b-91ae-364da2661108",
          "shortName": "CVE"
        },
        "references": [
          {
            "tags": [
              "x_transferred"
            ],
            "url": "https://git.kernel.org/stable/c/acf2b80c31c37acab040baa3cf5f19fbd5140b18"
          },
          {
            "tags": [
              "x_transferred"
            ],
            "url": "https://git.kernel.org/stable/c/19c166ee42cf16d8b156a6cb4544122d9a65d3ca"
          },
          {
            "tags": [
              "x_transferred"
            ],
            "url": "https://git.kernel.org/stable/c/a8c988d752b3d98d5cc1e3929c519a55ef55426c"
          },
          {
            "tags": [
              "x_transferred"
            ],
            "url": "https://git.kernel.org/stable/c/262e942ff5a839b9e4f3302a8987928b0c8b8a2d"
          },
          {
            "tags": [
              "x_transferred"
            ],
            "url": "https://git.kernel.org/stable/c/8aa11aa001576bf3b00dcb8559564ad7a3113588"
          },
          {
            "tags": [
              "x_transferred"
            ],
            "url": "https://git.kernel.org/stable/c/3ad0034910a57aa88ed9976b1431b7b8c84e0048"
          },
          {
            "tags": [
              "x_transferred"
            ],
            "url": "https://git.kernel.org/stable/c/aa6107dcc4ce9a3451f2d729204713783b657257"
          },
          {
            "tags": [
              "x_transferred"
            ],
            "url": "https://git.kernel.org/stable/c/ff2e185cf73df480ec69675936c4ee75a445c3e4"
          },
          {
            "url": "https://lists.debian.org/debian-lts-announce/2025/01/msg00001.html"
          }
        ],
        "title": "CVE Program Container"
      },
      {
        "metrics": [
          {
            "other": {
              "content": {
                "id": "CVE-2024-40974",
                "options": [
                  {
                    "Exploitation": "none"
                  },
                  {
                    "Automatable": "no"
                  },
                  {
                    "Technical Impact": "partial"
                  }
                ],
                "role": "CISA Coordinator",
                "timestamp": "2024-09-10T17:02:44.463070Z",
                "version": "2.0.3"
              },
              "type": "ssvc"
            }
          }
        ],
        "providerMetadata": {
          "dateUpdated": "2024-09-11T17:34:22.210Z",
          "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
          "shortName": "CISA-ADP"
        },
        "title": "CISA ADP Vulnrichment"
      }
    ],
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "arch/powerpc/include/asm/hvcall.h"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "acf2b80c31c37acab040baa3cf5f19fbd5140b18",
              "status": "affected",
              "version": "b9377ffc3a03cde558d76349a262a1adbb6d3112",
              "versionType": "git"
            },
            {
              "lessThan": "19c166ee42cf16d8b156a6cb4544122d9a65d3ca",
              "status": "affected",
              "version": "b9377ffc3a03cde558d76349a262a1adbb6d3112",
              "versionType": "git"
            },
            {
              "lessThan": "a8c988d752b3d98d5cc1e3929c519a55ef55426c",
              "status": "affected",
              "version": "b9377ffc3a03cde558d76349a262a1adbb6d3112",
              "versionType": "git"
            },
            {
              "lessThan": "262e942ff5a839b9e4f3302a8987928b0c8b8a2d",
              "status": "affected",
              "version": "b9377ffc3a03cde558d76349a262a1adbb6d3112",
              "versionType": "git"
            },
            {
              "lessThan": "8aa11aa001576bf3b00dcb8559564ad7a3113588",
              "status": "affected",
              "version": "b9377ffc3a03cde558d76349a262a1adbb6d3112",
              "versionType": "git"
            },
            {
              "lessThan": "3ad0034910a57aa88ed9976b1431b7b8c84e0048",
              "status": "affected",
              "version": "b9377ffc3a03cde558d76349a262a1adbb6d3112",
              "versionType": "git"
            },
            {
              "lessThan": "aa6107dcc4ce9a3451f2d729204713783b657257",
              "status": "affected",
              "version": "b9377ffc3a03cde558d76349a262a1adbb6d3112",
              "versionType": "git"
            },
            {
              "lessThan": "ff2e185cf73df480ec69675936c4ee75a445c3e4",
              "status": "affected",
              "version": "b9377ffc3a03cde558d76349a262a1adbb6d3112",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "arch/powerpc/include/asm/hvcall.h"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "2.6.19"
            },
            {
              "lessThan": "2.6.19",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "4.19.*",
              "status": "unaffected",
              "version": "4.19.317",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.4.*",
              "status": "unaffected",
              "version": "5.4.279",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.10.*",
              "status": "unaffected",
              "version": "5.10.221",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.15.*",
              "status": "unaffected",
              "version": "5.15.162",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.1.*",
              "status": "unaffected",
              "version": "6.1.96",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.6.*",
              "status": "unaffected",
              "version": "6.6.36",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.9.*",
              "status": "unaffected",
              "version": "6.9.7",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "6.10",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "4.19.317",
                  "versionStartIncluding": "2.6.19",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.4.279",
                  "versionStartIncluding": "2.6.19",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.10.221",
                  "versionStartIncluding": "2.6.19",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.15.162",
                  "versionStartIncluding": "2.6.19",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.1.96",
                  "versionStartIncluding": "2.6.19",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.6.36",
                  "versionStartIncluding": "2.6.19",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.9.7",
                  "versionStartIncluding": "2.6.19",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.10",
                  "versionStartIncluding": "2.6.19",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\npowerpc/pseries: Enforce hcall result buffer validity and size\n\nplpar_hcall(), plpar_hcall9(), and related functions expect callers to\nprovide valid result buffers of certain minimum size. Currently this\nis communicated only through comments in the code and the compiler has\nno idea.\n\nFor example, if I write a bug like this:\n\n  long retbuf[PLPAR_HCALL_BUFSIZE]; // should be PLPAR_HCALL9_BUFSIZE\n  plpar_hcall9(H_ALLOCATE_VAS_WINDOW, retbuf, ...);\n\nThis compiles with no diagnostics emitted, but likely results in stack\ncorruption at runtime when plpar_hcall9() stores results past the end\nof the array. (To be clear this is a contrived example and I have not\nfound a real instance yet.)\n\nTo make this class of error less likely, we can use explicitly-sized\narray parameters instead of pointers in the declarations for the hcall\nAPIs. When compiled with -Warray-bounds[1], the code above now\nprovokes a diagnostic like this:\n\nerror: array argument is too small;\nis of size 32, callee requires at least 72 [-Werror,-Warray-bounds]\n   60 |                 plpar_hcall9(H_ALLOCATE_VAS_WINDOW, retbuf,\n      |                 ^                                   ~~~~~~\n\n[1] Enabled for LLVM builds but not GCC for now. See commit\n    0da6e5fd6c37 (\"gcc: disable \u0027-Warray-bounds\u0027 for gcc-13 too\") and\n    related changes."
        }
      ],
      "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 affected hcall wrappers are reached only through local interfaces on a pseries LPAR \u2014 a `read()` of `/proc/powerpc/lparcfg` (H_GET_PPP) or the `VAS_TX_WIN_OPEN` ioctl on `/dev/crypto/nx-gzip` (H_ALLOCATE_VAS_WINDOW / H_HOME_NODE_ASSOCIATIVITY). No remote peer data reaches or controls the overflow, so Network/Adjacent are not defensible.\nAC:L - The guarded defect is a deterministic fixed-size store \u2014 `plpar_hcall9` in hvCall.S always writes 9 doublewords regardless of buffer size \u2014 so it triggers on every invocation with no race, timing window, or memory-layout precondition. An attacker can invoke the affected paths at will and repeatedly.\nPR:L - Reaching the hcall wrappers requires only an unprivileged local account: `/proc/powerpc/lparcfg` is created mode 0444, and `coproc_ioctl()` in vas-api.c contains no `capable()`/`CAP_*` check at all, so any user who can open the nx-gzip node can drive the VAS hcall path. No root or namespace capability is needed.\nUI:N - The affected code executes directly in the context of the attacker\u0027s own syscall (read/ioctl); no victim must mount a filesystem, open a file, or take any other action.\nS:U - A stack overwrite in the pseries hcall wrappers corrupts the guest kernel\u0027s own stack and stays entirely within the kernel\u0027s security authority. Although the overflow data originates in hypervisor registers, that is the defined PAPR hcall ABI and no hypervisor/IOMMU boundary is crossed.\nC:H - A 40-byte out-of-bounds write past a caller\u0027s on-stack retbuf clobbers adjacent locals, saved registers, and pointer/length slots in the same frame, which can be steered into a subsequent copy-out and leveraged for kernel memory disclosure; per the memory-corruption guidance this rates High.\nI:H - This is an out-of-bounds *write* into the kernel stack \u2014 the canonical High-integrity case \u2014 capable of overwriting saved return addresses and function pointers in the affected frame and thus hijacking kernel control flow.\nA:H - Corrupting 40 bytes of live kernel stack, including saved link-register/frame state, reliably produces an oops or panic; the affected paths are unprivileged and can be invoked repeatedly for a sustained denial of service."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-05T11:34:20.623Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/acf2b80c31c37acab040baa3cf5f19fbd5140b18"
        },
        {
          "url": "https://git.kernel.org/stable/c/19c166ee42cf16d8b156a6cb4544122d9a65d3ca"
        },
        {
          "url": "https://git.kernel.org/stable/c/a8c988d752b3d98d5cc1e3929c519a55ef55426c"
        },
        {
          "url": "https://git.kernel.org/stable/c/262e942ff5a839b9e4f3302a8987928b0c8b8a2d"
        },
        {
          "url": "https://git.kernel.org/stable/c/8aa11aa001576bf3b00dcb8559564ad7a3113588"
        },
        {
          "url": "https://git.kernel.org/stable/c/3ad0034910a57aa88ed9976b1431b7b8c84e0048"
        },
        {
          "url": "https://git.kernel.org/stable/c/aa6107dcc4ce9a3451f2d729204713783b657257"
        },
        {
          "url": "https://git.kernel.org/stable/c/ff2e185cf73df480ec69675936c4ee75a445c3e4"
        }
      ],
      "title": "powerpc/pseries: Enforce hcall result buffer validity and size",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2024-40974",
    "datePublished": "2024-07-12T12:32:11.417Z",
    "dateReserved": "2024-07-12T12:17:45.603Z",
    "dateUpdated": "2026-08-05T11:34:20.623Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "vulnrichment": {
      "containers": "{\"adp\": [{\"title\": \"CVE Program Container\", \"references\": [{\"url\": \"https://git.kernel.org/stable/c/acf2b80c31c37acab040baa3cf5f19fbd5140b18\", \"tags\": [\"x_transferred\"]}, {\"url\": \"https://git.kernel.org/stable/c/19c166ee42cf16d8b156a6cb4544122d9a65d3ca\", \"tags\": [\"x_transferred\"]}, {\"url\": \"https://git.kernel.org/stable/c/a8c988d752b3d98d5cc1e3929c519a55ef55426c\", \"tags\": [\"x_transferred\"]}, {\"url\": \"https://git.kernel.org/stable/c/262e942ff5a839b9e4f3302a8987928b0c8b8a2d\", \"tags\": [\"x_transferred\"]}, {\"url\": \"https://git.kernel.org/stable/c/8aa11aa001576bf3b00dcb8559564ad7a3113588\", \"tags\": [\"x_transferred\"]}, {\"url\": \"https://git.kernel.org/stable/c/3ad0034910a57aa88ed9976b1431b7b8c84e0048\", \"tags\": [\"x_transferred\"]}, {\"url\": \"https://git.kernel.org/stable/c/aa6107dcc4ce9a3451f2d729204713783b657257\", \"tags\": [\"x_transferred\"]}, {\"url\": \"https://git.kernel.org/stable/c/ff2e185cf73df480ec69675936c4ee75a445c3e4\", \"tags\": [\"x_transferred\"]}, {\"url\": \"https://lists.debian.org/debian-lts-announce/2025/01/msg00001.html\"}], \"providerMetadata\": {\"orgId\": \"af854a3a-2127-422b-91ae-364da2661108\", \"shortName\": \"CVE\", \"dateUpdated\": \"2025-11-03T21:58:39.132Z\"}}, {\"title\": \"CISA ADP Vulnrichment\", \"metrics\": [{\"other\": {\"type\": \"ssvc\", \"content\": {\"id\": \"CVE-2024-40974\", \"role\": \"CISA Coordinator\", \"options\": [{\"Exploitation\": \"none\"}, {\"Automatable\": \"no\"}, {\"Technical Impact\": \"partial\"}], \"version\": \"2.0.3\", \"timestamp\": \"2024-09-10T17:02:44.463070Z\"}}}], \"providerMetadata\": {\"orgId\": \"134c704f-9b21-4f2e-91b3-4a467353bcc0\", \"shortName\": \"CISA-ADP\", \"dateUpdated\": \"2024-09-11T12:42:22.252Z\"}}], \"cna\": {\"title\": \"powerpc/pseries: Enforce hcall result buffer validity and size\", \"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 affected hcall wrappers are reached only through local interfaces on a pseries LPAR \\u2014 a `read()` of `/proc/powerpc/lparcfg` (H_GET_PPP) or the `VAS_TX_WIN_OPEN` ioctl on `/dev/crypto/nx-gzip` (H_ALLOCATE_VAS_WINDOW / H_HOME_NODE_ASSOCIATIVITY). No remote peer data reaches or controls the overflow, so Network/Adjacent are not defensible.\\nAC:L - The guarded defect is a deterministic fixed-size store \\u2014 `plpar_hcall9` in hvCall.S always writes 9 doublewords regardless of buffer size \\u2014 so it triggers on every invocation with no race, timing window, or memory-layout precondition. An attacker can invoke the affected paths at will and repeatedly.\\nPR:L - Reaching the hcall wrappers requires only an unprivileged local account: `/proc/powerpc/lparcfg` is created mode 0444, and `coproc_ioctl()` in vas-api.c contains no `capable()`/`CAP_*` check at all, so any user who can open the nx-gzip node can drive the VAS hcall path. No root or namespace capability is needed.\\nUI:N - The affected code executes directly in the context of the attacker\u0027s own syscall (read/ioctl); no victim must mount a filesystem, open a file, or take any other action.\\nS:U - A stack overwrite in the pseries hcall wrappers corrupts the guest kernel\u0027s own stack and stays entirely within the kernel\u0027s security authority. Although the overflow data originates in hypervisor registers, that is the defined PAPR hcall ABI and no hypervisor/IOMMU boundary is crossed.\\nC:H - A 40-byte out-of-bounds write past a caller\u0027s on-stack retbuf clobbers adjacent locals, saved registers, and pointer/length slots in the same frame, which can be steered into a subsequent copy-out and leveraged for kernel memory disclosure; per the memory-corruption guidance this rates High.\\nI:H - This is an out-of-bounds *write* into the kernel stack \\u2014 the canonical High-integrity case \\u2014 capable of overwriting saved return addresses and function pointers in the affected frame and thus hijacking kernel control flow.\\nA:H - Corrupting 40 bytes of live kernel stack, including saved link-register/frame state, reliably produces an oops or panic; the affected paths are unprivileged and can be invoked repeatedly for a sustained denial of service.\"}]}], \"affected\": [{\"repo\": \"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\", \"vendor\": \"Linux\", \"product\": \"Linux\", \"versions\": [{\"status\": \"affected\", \"version\": \"b9377ffc3a03cde558d76349a262a1adbb6d3112\", \"lessThan\": \"acf2b80c31c37acab040baa3cf5f19fbd5140b18\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"b9377ffc3a03cde558d76349a262a1adbb6d3112\", \"lessThan\": \"19c166ee42cf16d8b156a6cb4544122d9a65d3ca\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"b9377ffc3a03cde558d76349a262a1adbb6d3112\", \"lessThan\": \"a8c988d752b3d98d5cc1e3929c519a55ef55426c\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"b9377ffc3a03cde558d76349a262a1adbb6d3112\", \"lessThan\": \"262e942ff5a839b9e4f3302a8987928b0c8b8a2d\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"b9377ffc3a03cde558d76349a262a1adbb6d3112\", \"lessThan\": \"8aa11aa001576bf3b00dcb8559564ad7a3113588\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"b9377ffc3a03cde558d76349a262a1adbb6d3112\", \"lessThan\": \"3ad0034910a57aa88ed9976b1431b7b8c84e0048\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"b9377ffc3a03cde558d76349a262a1adbb6d3112\", \"lessThan\": \"aa6107dcc4ce9a3451f2d729204713783b657257\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"b9377ffc3a03cde558d76349a262a1adbb6d3112\", \"lessThan\": \"ff2e185cf73df480ec69675936c4ee75a445c3e4\", \"versionType\": \"git\"}], \"programFiles\": [\"arch/powerpc/include/asm/hvcall.h\"], \"defaultStatus\": \"unaffected\"}, {\"repo\": \"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\", \"vendor\": \"Linux\", \"product\": \"Linux\", \"versions\": [{\"status\": \"affected\", \"version\": \"2.6.19\"}, {\"status\": \"unaffected\", \"version\": \"0\", \"lessThan\": \"2.6.19\", \"versionType\": \"semver\"}, {\"status\": \"unaffected\", \"version\": \"4.19.317\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"4.19.*\"}, {\"status\": \"unaffected\", \"version\": \"5.4.279\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"5.4.*\"}, {\"status\": \"unaffected\", \"version\": \"5.10.221\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"5.10.*\"}, {\"status\": \"unaffected\", \"version\": \"5.15.162\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"5.15.*\"}, {\"status\": \"unaffected\", \"version\": \"6.1.96\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"6.1.*\"}, {\"status\": \"unaffected\", \"version\": \"6.6.36\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"6.6.*\"}, {\"status\": \"unaffected\", \"version\": \"6.9.7\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"6.9.*\"}, {\"status\": \"unaffected\", \"version\": \"6.10\", \"versionType\": \"original_commit_for_fix\", \"lessThanOrEqual\": \"*\"}], \"programFiles\": [\"arch/powerpc/include/asm/hvcall.h\"], \"defaultStatus\": \"affected\"}], \"references\": [{\"url\": \"https://git.kernel.org/stable/c/acf2b80c31c37acab040baa3cf5f19fbd5140b18\"}, {\"url\": \"https://git.kernel.org/stable/c/19c166ee42cf16d8b156a6cb4544122d9a65d3ca\"}, {\"url\": \"https://git.kernel.org/stable/c/a8c988d752b3d98d5cc1e3929c519a55ef55426c\"}, {\"url\": \"https://git.kernel.org/stable/c/262e942ff5a839b9e4f3302a8987928b0c8b8a2d\"}, {\"url\": \"https://git.kernel.org/stable/c/8aa11aa001576bf3b00dcb8559564ad7a3113588\"}, {\"url\": \"https://git.kernel.org/stable/c/3ad0034910a57aa88ed9976b1431b7b8c84e0048\"}, {\"url\": \"https://git.kernel.org/stable/c/aa6107dcc4ce9a3451f2d729204713783b657257\"}, {\"url\": \"https://git.kernel.org/stable/c/ff2e185cf73df480ec69675936c4ee75a445c3e4\"}], \"x_generator\": {\"engine\": \"bippy-1.2.0\"}, \"descriptions\": [{\"lang\": \"en\", \"value\": \"In the Linux kernel, the following vulnerability has been resolved:\\n\\npowerpc/pseries: Enforce hcall result buffer validity and size\\n\\nplpar_hcall(), plpar_hcall9(), and related functions expect callers to\\nprovide valid result buffers of certain minimum size. Currently this\\nis communicated only through comments in the code and the compiler has\\nno idea.\\n\\nFor example, if I write a bug like this:\\n\\n  long retbuf[PLPAR_HCALL_BUFSIZE]; // should be PLPAR_HCALL9_BUFSIZE\\n  plpar_hcall9(H_ALLOCATE_VAS_WINDOW, retbuf, ...);\\n\\nThis compiles with no diagnostics emitted, but likely results in stack\\ncorruption at runtime when plpar_hcall9() stores results past the end\\nof the array. (To be clear this is a contrived example and I have not\\nfound a real instance yet.)\\n\\nTo make this class of error less likely, we can use explicitly-sized\\narray parameters instead of pointers in the declarations for the hcall\\nAPIs. When compiled with -Warray-bounds[1], the code above now\\nprovokes a diagnostic like this:\\n\\nerror: array argument is too small;\\nis of size 32, callee requires at least 72 [-Werror,-Warray-bounds]\\n   60 |                 plpar_hcall9(H_ALLOCATE_VAS_WINDOW, retbuf,\\n      |                 ^                                   ~~~~~~\\n\\n[1] Enabled for LLVM builds but not GCC for now. See commit\\n    0da6e5fd6c37 (\\\"gcc: disable \u0027-Warray-bounds\u0027 for gcc-13 too\\\") and\\n    related changes.\"}], \"cpeApplicability\": [{\"nodes\": [{\"negate\": false, \"cpeMatch\": [{\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"4.19.317\", \"versionStartIncluding\": \"2.6.19\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"5.4.279\", \"versionStartIncluding\": \"2.6.19\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"5.10.221\", \"versionStartIncluding\": \"2.6.19\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"5.15.162\", \"versionStartIncluding\": \"2.6.19\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"6.1.96\", \"versionStartIncluding\": \"2.6.19\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"6.6.36\", \"versionStartIncluding\": \"2.6.19\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"6.9.7\", \"versionStartIncluding\": \"2.6.19\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"6.10\", \"versionStartIncluding\": \"2.6.19\"}], \"operator\": \"OR\"}]}], \"providerMetadata\": {\"orgId\": \"416baaa9-dc9f-4396-8d5f-8c081fb06d67\", \"shortName\": \"Linux\", \"dateUpdated\": \"2026-08-05T11:34:20.623Z\"}}}",
      "cveMetadata": "{\"cveId\": \"CVE-2024-40974\", \"state\": \"PUBLISHED\", \"dateUpdated\": \"2026-08-05T11:34:20.623Z\", \"dateReserved\": \"2024-07-12T12:17:45.603Z\", \"assignerOrgId\": \"416baaa9-dc9f-4396-8d5f-8c081fb06d67\", \"datePublished\": \"2024-07-12T12:32:11.417Z\", \"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…