CVE-2024-58083 (GCVE-0-2024-58083)
Vulnerability from cvelistv5
Published
2025-03-06 16:13
Modified
2026-08-05 11:47
Summary
In the Linux kernel, the following vulnerability has been resolved: KVM: Explicitly verify target vCPU is online in kvm_get_vcpu() Explicitly verify the target vCPU is fully online _prior_ to clamping the index in kvm_get_vcpu(). If the index is "bad", the nospec clamping will generate '0', i.e. KVM will return vCPU0 instead of NULL. In practice, the bug is unlikely to cause problems, as it will only come into play if userspace or the guest is buggy or misbehaving, e.g. KVM may send interrupts to vCPU0 instead of dropping them on the floor. However, returning vCPU0 when it shouldn't exist per online_vcpus is problematic now that KVM uses an xarray for the vCPUs array, as KVM needs to insert into the xarray before publishing the vCPU to userspace (see commit c5b077549136 ("KVM: Convert the kvm->vcpus array to a xarray")), i.e. before vCPU creation is guaranteed to succeed. As a result, incorrectly providing access to vCPU0 will trigger a use-after-free if vCPU0 is dereferenced and kvm_vm_ioctl_create_vcpu() bails out of vCPU creation due to an error and frees vCPU0. Commit afb2acb2e3a3 ("KVM: Fix vcpu_array[0] races") papered over that issue, but in doing so introduced an unsolvable teardown conundrum. Preventing accesses to vCPU0 before it's fully online will allow reverting commit afb2acb2e3a3, without re-introducing the vcpu_array[0] UAF race.
Impacted products
Vendor Product Version
Linux Linux Version: 1d487e9bf8ba66a7174c56a0029c54b1eca8f99c
Version: 1d487e9bf8ba66a7174c56a0029c54b1eca8f99c
Version: 1d487e9bf8ba66a7174c56a0029c54b1eca8f99c
Version: 1d487e9bf8ba66a7174c56a0029c54b1eca8f99c
Version: 1d487e9bf8ba66a7174c56a0029c54b1eca8f99c
Version: 1d487e9bf8ba66a7174c56a0029c54b1eca8f99c
Version: 1d487e9bf8ba66a7174c56a0029c54b1eca8f99c
Version: 1d487e9bf8ba66a7174c56a0029c54b1eca8f99c
Version: 559e2696d2f47a3575e9550f101a7e59e30b1b38
Version: d39f3cc71382165bb7efb8e06a2bd32f847de4ae
Version: 7cee966029037a183d98cb88251ceb92a233fe63
Version: 4.14.120   
Version: 4.19.44   
Version: 5.0.17   
Create a notification for this product.
Show details on NVD website


{
  "containers": {
    "adp": [
      {
        "metrics": [
          {
            "cvssV3_1": {
              "attackComplexity": "LOW",
              "attackVector": "LOCAL",
              "availabilityImpact": "HIGH",
              "baseScore": 7.8,
              "baseSeverity": "HIGH",
              "confidentialityImpact": "HIGH",
              "integrityImpact": "HIGH",
              "privilegesRequired": "LOW",
              "scope": "UNCHANGED",
              "userInteraction": "NONE",
              "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
              "version": "3.1"
            }
          },
          {
            "other": {
              "content": {
                "id": "CVE-2024-58083",
                "options": [
                  {
                    "Exploitation": "none"
                  },
                  {
                    "Automatable": "no"
                  },
                  {
                    "Technical Impact": "total"
                  }
                ],
                "role": "CISA Coordinator",
                "timestamp": "2025-03-27T17:00:02.623750Z",
                "version": "2.0.3"
              },
              "type": "ssvc"
            }
          }
        ],
        "problemTypes": [
          {
            "descriptions": [
              {
                "cweId": "CWE-416",
                "description": "CWE-416 Use After Free",
                "lang": "en",
                "type": "CWE"
              }
            ]
          }
        ],
        "providerMetadata": {
          "dateUpdated": "2025-03-27T17:08:23.092Z",
          "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
          "shortName": "CISA-ADP"
        },
        "title": "CISA ADP Vulnrichment"
      },
      {
        "providerMetadata": {
          "dateUpdated": "2025-11-03T19:34:17.500Z",
          "orgId": "af854a3a-2127-422b-91ae-364da2661108",
          "shortName": "CVE"
        },
        "references": [
          {
            "url": "https://lists.debian.org/debian-lts-announce/2025/05/msg00030.html"
          },
          {
            "url": "https://lists.debian.org/debian-lts-announce/2025/03/msg00028.html"
          }
        ],
        "title": "CVE Program Container"
      }
    ],
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "include/linux/kvm_host.h"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "5cce2ed69b00e022b5cdf0c49c82986abd2941a8",
              "status": "affected",
              "version": "1d487e9bf8ba66a7174c56a0029c54b1eca8f99c",
              "versionType": "git"
            },
            {
              "lessThan": "09d50ccf0b2d739db4a485b08afe7520a4402a63",
              "status": "affected",
              "version": "1d487e9bf8ba66a7174c56a0029c54b1eca8f99c",
              "versionType": "git"
            },
            {
              "lessThan": "7c4899239d0f70f88ac42665b3da51678d122480",
              "status": "affected",
              "version": "1d487e9bf8ba66a7174c56a0029c54b1eca8f99c",
              "versionType": "git"
            },
            {
              "lessThan": "d817e510662fd1c9797952408d94806f97a5fffd",
              "status": "affected",
              "version": "1d487e9bf8ba66a7174c56a0029c54b1eca8f99c",
              "versionType": "git"
            },
            {
              "lessThan": "125da53b3c0c9d7f58353aea0076e9efd6498ba7",
              "status": "affected",
              "version": "1d487e9bf8ba66a7174c56a0029c54b1eca8f99c",
              "versionType": "git"
            },
            {
              "lessThan": "f2f805ada63b536bc192458a7098388286568ad4",
              "status": "affected",
              "version": "1d487e9bf8ba66a7174c56a0029c54b1eca8f99c",
              "versionType": "git"
            },
            {
              "lessThan": "ca8da90ed1432ff3d000de4f1e2275d4e7d21b96",
              "status": "affected",
              "version": "1d487e9bf8ba66a7174c56a0029c54b1eca8f99c",
              "versionType": "git"
            },
            {
              "lessThan": "1e7381f3617d14b3c11da80ff5f8a93ab14cfc46",
              "status": "affected",
              "version": "1d487e9bf8ba66a7174c56a0029c54b1eca8f99c",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "559e2696d2f47a3575e9550f101a7e59e30b1b38",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "d39f3cc71382165bb7efb8e06a2bd32f847de4ae",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "7cee966029037a183d98cb88251ceb92a233fe63",
              "versionType": "git"
            },
            {
              "lessThan": "4.15",
              "status": "affected",
              "version": "4.14.120",
              "versionType": "semver"
            },
            {
              "lessThan": "4.20",
              "status": "affected",
              "version": "4.19.44",
              "versionType": "semver"
            },
            {
              "lessThan": "5.1",
              "status": "affected",
              "version": "5.0.17",
              "versionType": "semver"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "include/linux/kvm_host.h"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "5.1"
            },
            {
              "lessThan": "5.1",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.4.*",
              "status": "unaffected",
              "version": "5.4.291",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.10.*",
              "status": "unaffected",
              "version": "5.10.235",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.15.*",
              "status": "unaffected",
              "version": "5.15.179",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.1.*",
              "status": "unaffected",
              "version": "6.1.129",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.6.*",
              "status": "unaffected",
              "version": "6.6.78",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.12.*",
              "status": "unaffected",
              "version": "6.12.14",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.13.*",
              "status": "unaffected",
              "version": "6.13.3",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "6.14",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.4.291",
                  "versionStartIncluding": "5.1",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.10.235",
                  "versionStartIncluding": "5.1",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.15.179",
                  "versionStartIncluding": "5.1",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.1.129",
                  "versionStartIncluding": "5.1",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.6.78",
                  "versionStartIncluding": "5.1",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.12.14",
                  "versionStartIncluding": "5.1",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.13.3",
                  "versionStartIncluding": "5.1",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.14",
                  "versionStartIncluding": "5.1",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionStartIncluding": "4.14.120",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionStartIncluding": "4.19.44",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionStartIncluding": "5.0.17",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nKVM: Explicitly verify target vCPU is online in kvm_get_vcpu()\n\nExplicitly verify the target vCPU is fully online _prior_ to clamping the\nindex in kvm_get_vcpu().  If the index is \"bad\", the nospec clamping will\ngenerate \u00270\u0027, i.e. KVM will return vCPU0 instead of NULL.\n\nIn practice, the bug is unlikely to cause problems, as it will only come\ninto play if userspace or the guest is buggy or misbehaving, e.g. KVM may\nsend interrupts to vCPU0 instead of dropping them on the floor.\n\nHowever, returning vCPU0 when it shouldn\u0027t exist per online_vcpus is\nproblematic now that KVM uses an xarray for the vCPUs array, as KVM needs\nto insert into the xarray before publishing the vCPU to userspace (see\ncommit c5b077549136 (\"KVM: Convert the kvm-\u003evcpus array to a xarray\")),\ni.e. before vCPU creation is guaranteed to succeed.\n\nAs a result, incorrectly providing access to vCPU0 will trigger a\nuse-after-free if vCPU0 is dereferenced and kvm_vm_ioctl_create_vcpu()\nbails out of vCPU creation due to an error and frees vCPU0.  Commit\nafb2acb2e3a3 (\"KVM: Fix vcpu_array[0] races\") papered over that issue, but\nin doing so introduced an unsolvable teardown conundrum.  Preventing\naccesses to vCPU0 before it\u0027s fully online will allow reverting commit\nafb2acb2e3a3, without re-introducing the vcpu_array[0] UAF race."
        }
      ],
      "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 vulnerable helper is reached through `/dev/kvm` ioctls (`KVM_CREATE_VCPU`, `KVM_SET_DEVICE_ATTR`, `KVM_SIGNAL_MSI`, `KVM_S390_INTERRUPT`) issued by a local process. Guest-triggerable callers exist (Hyper-V hypercalls, vGIC/eiointc MMIO) but still require local access to start a VM.\nAC:L - The out-of-range index is supplied directly by the attacker and clamps to vCPU0 deterministically, with no race needed for the wrong-vCPU/NULL-check-bypass path. For the use-after-free the attacker owns both sides of the race \u2014 one thread runs `KVM_CREATE_VCPU` with `RLIMIT_NOFILE` exhausted so `create_vcpu_fd()` fails every time, while another hammers a `kvm_get_vcpu()` path with `online_vcpus == 0`.\nPR:L - Only an unprivileged local account with `/dev/kvm` access is needed \u2014 no capability check exists on these paths, and `/dev/kvm` is routinely exposed to the `kvm` group, to containers/CI runners, and to sandboxed apps on Android and ChromeOS.\nUI:N - The attacker drives every step itself via ioctls on file descriptors it owns; no victim action or interaction is required.\nS:U - The vulnerable code and the corrupted memory are both in the host kernel, reached from the VMM process that already owns the VM, so no guest-to-host or other security-authority boundary is crossed. The guest-reachable misrouting only redirects interrupts to a different vCPU inside the same VM.\nC:H - Dereferencing a freed `struct kvm_vcpu` after heap reallocation yields a read primitive over attacker-groomed slab memory (kernel pointers, `vcpu-\u003earch` state, `kvm` pointers). Even without the UAF, the clamped index grants unauthorized reads of vCPU0 state (e.g. `ipi_state`, `imsic_addr`) that the caller was supposed to be denied.\nI:H - The freed `kvm_vcpu` is written through on these paths (`mutex_lock(\u0026vcpu-\u003emutex)`, `vcpu-\u003earch.ipi_state.*`, `kvm_make_request()`, `hv_tlb_flush_enqueue()`), giving a write-after-free into a reclaimed slab object that is a well-established route to control-flow hijack and privilege escalation.\nA:H - Use-after-free on `struct kvm_vcpu` reliably produces an oops or panic when the object is reclaimed, and the mis-clamped index also drives interrupt injection and lock operations against a nonexistent vCPU, crashing or hanging the host."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-05T11:47:36.275Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/5cce2ed69b00e022b5cdf0c49c82986abd2941a8"
        },
        {
          "url": "https://git.kernel.org/stable/c/09d50ccf0b2d739db4a485b08afe7520a4402a63"
        },
        {
          "url": "https://git.kernel.org/stable/c/7c4899239d0f70f88ac42665b3da51678d122480"
        },
        {
          "url": "https://git.kernel.org/stable/c/d817e510662fd1c9797952408d94806f97a5fffd"
        },
        {
          "url": "https://git.kernel.org/stable/c/125da53b3c0c9d7f58353aea0076e9efd6498ba7"
        },
        {
          "url": "https://git.kernel.org/stable/c/f2f805ada63b536bc192458a7098388286568ad4"
        },
        {
          "url": "https://git.kernel.org/stable/c/ca8da90ed1432ff3d000de4f1e2275d4e7d21b96"
        },
        {
          "url": "https://git.kernel.org/stable/c/1e7381f3617d14b3c11da80ff5f8a93ab14cfc46"
        }
      ],
      "title": "KVM: Explicitly verify target vCPU is online in kvm_get_vcpu()",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2024-58083",
    "datePublished": "2025-03-06T16:13:45.631Z",
    "dateReserved": "2025-03-06T15:52:09.183Z",
    "dateUpdated": "2026-08-05T11:47:36.275Z",
    "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/05/msg00030.html\"}, {\"url\": \"https://lists.debian.org/debian-lts-announce/2025/03/msg00028.html\"}], \"providerMetadata\": {\"orgId\": \"af854a3a-2127-422b-91ae-364da2661108\", \"shortName\": \"CVE\", \"dateUpdated\": \"2025-11-03T19:34:17.500Z\"}}, {\"title\": \"CISA ADP Vulnrichment\", \"metrics\": [{\"cvssV3_1\": {\"scope\": \"UNCHANGED\", \"version\": \"3.1\", \"baseScore\": 7.8, \"attackVector\": \"LOCAL\", \"baseSeverity\": \"HIGH\", \"vectorString\": \"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H\", \"integrityImpact\": \"HIGH\", \"userInteraction\": \"NONE\", \"attackComplexity\": \"LOW\", \"availabilityImpact\": \"HIGH\", \"privilegesRequired\": \"LOW\", \"confidentialityImpact\": \"HIGH\"}}, {\"other\": {\"type\": \"ssvc\", \"content\": {\"id\": \"CVE-2024-58083\", \"role\": \"CISA Coordinator\", \"options\": [{\"Exploitation\": \"none\"}, {\"Automatable\": \"no\"}, {\"Technical Impact\": \"total\"}], \"version\": \"2.0.3\", \"timestamp\": \"2025-03-27T17:00:02.623750Z\"}}}], \"problemTypes\": [{\"descriptions\": [{\"lang\": \"en\", \"type\": \"CWE\", \"cweId\": \"CWE-416\", \"description\": \"CWE-416 Use After Free\"}]}], \"providerMetadata\": {\"orgId\": \"134c704f-9b21-4f2e-91b3-4a467353bcc0\", \"shortName\": \"CISA-ADP\", \"dateUpdated\": \"2025-03-27T17:00:04.391Z\"}}], \"cna\": {\"title\": \"KVM: Explicitly verify target vCPU is online in kvm_get_vcpu()\", \"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 vulnerable helper is reached through `/dev/kvm` ioctls (`KVM_CREATE_VCPU`, `KVM_SET_DEVICE_ATTR`, `KVM_SIGNAL_MSI`, `KVM_S390_INTERRUPT`) issued by a local process. Guest-triggerable callers exist (Hyper-V hypercalls, vGIC/eiointc MMIO) but still require local access to start a VM.\\nAC:L - The out-of-range index is supplied directly by the attacker and clamps to vCPU0 deterministically, with no race needed for the wrong-vCPU/NULL-check-bypass path. For the use-after-free the attacker owns both sides of the race \\u2014 one thread runs `KVM_CREATE_VCPU` with `RLIMIT_NOFILE` exhausted so `create_vcpu_fd()` fails every time, while another hammers a `kvm_get_vcpu()` path with `online_vcpus == 0`.\\nPR:L - Only an unprivileged local account with `/dev/kvm` access is needed \\u2014 no capability check exists on these paths, and `/dev/kvm` is routinely exposed to the `kvm` group, to containers/CI runners, and to sandboxed apps on Android and ChromeOS.\\nUI:N - The attacker drives every step itself via ioctls on file descriptors it owns; no victim action or interaction is required.\\nS:U - The vulnerable code and the corrupted memory are both in the host kernel, reached from the VMM process that already owns the VM, so no guest-to-host or other security-authority boundary is crossed. The guest-reachable misrouting only redirects interrupts to a different vCPU inside the same VM.\\nC:H - Dereferencing a freed `struct kvm_vcpu` after heap reallocation yields a read primitive over attacker-groomed slab memory (kernel pointers, `vcpu-\u003earch` state, `kvm` pointers). Even without the UAF, the clamped index grants unauthorized reads of vCPU0 state (e.g. `ipi_state`, `imsic_addr`) that the caller was supposed to be denied.\\nI:H - The freed `kvm_vcpu` is written through on these paths (`mutex_lock(\u0026vcpu-\u003emutex)`, `vcpu-\u003earch.ipi_state.*`, `kvm_make_request()`, `hv_tlb_flush_enqueue()`), giving a write-after-free into a reclaimed slab object that is a well-established route to control-flow hijack and privilege escalation.\\nA:H - Use-after-free on `struct kvm_vcpu` reliably produces an oops or panic when the object is reclaimed, and the mis-clamped index also drives interrupt injection and lock operations against a nonexistent vCPU, crashing or hanging the host.\"}]}], \"affected\": [{\"repo\": \"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\", \"vendor\": \"Linux\", \"product\": \"Linux\", \"versions\": [{\"status\": \"affected\", \"version\": \"1d487e9bf8ba66a7174c56a0029c54b1eca8f99c\", \"lessThan\": \"5cce2ed69b00e022b5cdf0c49c82986abd2941a8\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"1d487e9bf8ba66a7174c56a0029c54b1eca8f99c\", \"lessThan\": \"09d50ccf0b2d739db4a485b08afe7520a4402a63\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"1d487e9bf8ba66a7174c56a0029c54b1eca8f99c\", \"lessThan\": \"7c4899239d0f70f88ac42665b3da51678d122480\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"1d487e9bf8ba66a7174c56a0029c54b1eca8f99c\", \"lessThan\": \"d817e510662fd1c9797952408d94806f97a5fffd\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"1d487e9bf8ba66a7174c56a0029c54b1eca8f99c\", \"lessThan\": \"125da53b3c0c9d7f58353aea0076e9efd6498ba7\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"1d487e9bf8ba66a7174c56a0029c54b1eca8f99c\", \"lessThan\": \"f2f805ada63b536bc192458a7098388286568ad4\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"1d487e9bf8ba66a7174c56a0029c54b1eca8f99c\", \"lessThan\": \"ca8da90ed1432ff3d000de4f1e2275d4e7d21b96\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"1d487e9bf8ba66a7174c56a0029c54b1eca8f99c\", \"lessThan\": \"1e7381f3617d14b3c11da80ff5f8a93ab14cfc46\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"559e2696d2f47a3575e9550f101a7e59e30b1b38\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"d39f3cc71382165bb7efb8e06a2bd32f847de4ae\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"7cee966029037a183d98cb88251ceb92a233fe63\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"4.14.120\", \"lessThan\": \"4.15\", \"versionType\": \"semver\"}, {\"status\": \"affected\", \"version\": \"4.19.44\", \"lessThan\": \"4.20\", \"versionType\": \"semver\"}, {\"status\": \"affected\", \"version\": \"5.0.17\", \"lessThan\": \"5.1\", \"versionType\": \"semver\"}], \"programFiles\": [\"include/linux/kvm_host.h\"], \"defaultStatus\": \"unaffected\"}, {\"repo\": \"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\", \"vendor\": \"Linux\", \"product\": \"Linux\", \"versions\": [{\"status\": \"affected\", \"version\": \"5.1\"}, {\"status\": \"unaffected\", \"version\": \"0\", \"lessThan\": \"5.1\", \"versionType\": \"semver\"}, {\"status\": \"unaffected\", \"version\": \"5.4.291\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"5.4.*\"}, {\"status\": \"unaffected\", \"version\": \"5.10.235\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"5.10.*\"}, {\"status\": \"unaffected\", \"version\": \"5.15.179\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"5.15.*\"}, {\"status\": \"unaffected\", \"version\": \"6.1.129\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"6.1.*\"}, {\"status\": \"unaffected\", \"version\": \"6.6.78\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"6.6.*\"}, {\"status\": \"unaffected\", \"version\": \"6.12.14\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"6.12.*\"}, {\"status\": \"unaffected\", \"version\": \"6.13.3\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"6.13.*\"}, {\"status\": \"unaffected\", \"version\": \"6.14\", \"versionType\": \"original_commit_for_fix\", \"lessThanOrEqual\": \"*\"}], \"programFiles\": [\"include/linux/kvm_host.h\"], \"defaultStatus\": \"affected\"}], \"references\": [{\"url\": \"https://git.kernel.org/stable/c/5cce2ed69b00e022b5cdf0c49c82986abd2941a8\"}, {\"url\": \"https://git.kernel.org/stable/c/09d50ccf0b2d739db4a485b08afe7520a4402a63\"}, {\"url\": \"https://git.kernel.org/stable/c/7c4899239d0f70f88ac42665b3da51678d122480\"}, {\"url\": \"https://git.kernel.org/stable/c/d817e510662fd1c9797952408d94806f97a5fffd\"}, {\"url\": \"https://git.kernel.org/stable/c/125da53b3c0c9d7f58353aea0076e9efd6498ba7\"}, {\"url\": \"https://git.kernel.org/stable/c/f2f805ada63b536bc192458a7098388286568ad4\"}, {\"url\": \"https://git.kernel.org/stable/c/ca8da90ed1432ff3d000de4f1e2275d4e7d21b96\"}, {\"url\": \"https://git.kernel.org/stable/c/1e7381f3617d14b3c11da80ff5f8a93ab14cfc46\"}], \"x_generator\": {\"engine\": \"bippy-1.2.0\"}, \"descriptions\": [{\"lang\": \"en\", \"value\": \"In the Linux kernel, the following vulnerability has been resolved:\\n\\nKVM: Explicitly verify target vCPU is online in kvm_get_vcpu()\\n\\nExplicitly verify the target vCPU is fully online _prior_ to clamping the\\nindex in kvm_get_vcpu().  If the index is \\\"bad\\\", the nospec clamping will\\ngenerate \u00270\u0027, i.e. KVM will return vCPU0 instead of NULL.\\n\\nIn practice, the bug is unlikely to cause problems, as it will only come\\ninto play if userspace or the guest is buggy or misbehaving, e.g. KVM may\\nsend interrupts to vCPU0 instead of dropping them on the floor.\\n\\nHowever, returning vCPU0 when it shouldn\u0027t exist per online_vcpus is\\nproblematic now that KVM uses an xarray for the vCPUs array, as KVM needs\\nto insert into the xarray before publishing the vCPU to userspace (see\\ncommit c5b077549136 (\\\"KVM: Convert the kvm-\u003evcpus array to a xarray\\\")),\\ni.e. before vCPU creation is guaranteed to succeed.\\n\\nAs a result, incorrectly providing access to vCPU0 will trigger a\\nuse-after-free if vCPU0 is dereferenced and kvm_vm_ioctl_create_vcpu()\\nbails out of vCPU creation due to an error and frees vCPU0.  Commit\\nafb2acb2e3a3 (\\\"KVM: Fix vcpu_array[0] races\\\") papered over that issue, but\\nin doing so introduced an unsolvable teardown conundrum.  Preventing\\naccesses to vCPU0 before it\u0027s fully online will allow reverting commit\\nafb2acb2e3a3, without re-introducing the vcpu_array[0] UAF race.\"}], \"cpeApplicability\": [{\"nodes\": [{\"negate\": false, \"cpeMatch\": [{\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"5.4.291\", \"versionStartIncluding\": \"5.1\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"5.10.235\", \"versionStartIncluding\": \"5.1\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"5.15.179\", \"versionStartIncluding\": \"5.1\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"6.1.129\", \"versionStartIncluding\": \"5.1\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"6.6.78\", \"versionStartIncluding\": \"5.1\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"6.12.14\", \"versionStartIncluding\": \"5.1\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"6.13.3\", \"versionStartIncluding\": \"5.1\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"6.14\", \"versionStartIncluding\": \"5.1\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionStartIncluding\": \"4.14.120\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionStartIncluding\": \"4.19.44\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionStartIncluding\": \"5.0.17\"}], \"operator\": \"OR\"}]}], \"providerMetadata\": {\"orgId\": \"416baaa9-dc9f-4396-8d5f-8c081fb06d67\", \"shortName\": \"Linux\", \"dateUpdated\": \"2026-08-05T11:47:36.275Z\"}}}",
      "cveMetadata": "{\"cveId\": \"CVE-2024-58083\", \"state\": \"PUBLISHED\", \"dateUpdated\": \"2026-08-05T11:47:36.275Z\", \"dateReserved\": \"2025-03-06T15:52:09.183Z\", \"assignerOrgId\": \"416baaa9-dc9f-4396-8d5f-8c081fb06d67\", \"datePublished\": \"2025-03-06T16:13:45.631Z\", \"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…