CVE-2024-35847 (GCVE-0-2024-35847)

Vulnerability from cvelistv5 – Published: 2024-05-17 14:47 – Updated: 2026-08-05 11:30
VLAI
Title
irqchip/gic-v3-its: Prevent double free on error
Summary
In the Linux kernel, the following vulnerability has been resolved: irqchip/gic-v3-its: Prevent double free on error The error handling path in its_vpe_irq_domain_alloc() causes a double free when its_vpe_init() fails after successfully allocating at least one interrupt. This happens because its_vpe_irq_domain_free() frees the interrupts along with the area bitmap and the vprop_page and its_vpe_irq_domain_alloc() subsequently frees the area bitmap and the vprop_page again. Fix this by unconditionally invoking its_vpe_irq_domain_free() which handles all cases correctly and by removing the bitmap/vprop_page freeing from its_vpe_irq_domain_alloc(). [ tglx: Massaged change log ]
SSVC
Exploitation: none Automatable: no Technical Impact: partial
CISA Coordinator (v2.0.3)
Assigner
Impacted products
Vendor Product Version
Linux Linux Affected: 7d75bbb4bc1ad90386776459d37e4ddfe605671e , < f5417ff561b8ac9a7e53c747b8627a7ab58378ae (git)
Affected: 7d75bbb4bc1ad90386776459d37e4ddfe605671e , < b72d2b1448b682844f995e660b77f2a1fabc1662 (git)
Affected: 7d75bbb4bc1ad90386776459d37e4ddfe605671e , < aa44d21574751a7d6bca892eb8e0e9ac68372e52 (git)
Affected: 7d75bbb4bc1ad90386776459d37e4ddfe605671e , < 5dbdbe1133911ca7d8466bb86885adec32ad9438 (git)
Affected: 7d75bbb4bc1ad90386776459d37e4ddfe605671e , < dd681710ab77c8beafe2e263064cb1bd0e2d6ca9 (git)
Affected: 7d75bbb4bc1ad90386776459d37e4ddfe605671e , < 03170e657f62c26834172742492a8cb8077ef792 (git)
Affected: 7d75bbb4bc1ad90386776459d37e4ddfe605671e , < 5b012f77abde89bf0be8a0547636184fea618137 (git)
Affected: 7d75bbb4bc1ad90386776459d37e4ddfe605671e , < c26591afd33adce296c022e3480dea4282b7ef91 (git)
Create a notification for this product.
Linux Linux Affected: 4.14
Unaffected: 0 , < 4.14 (semver)
Unaffected: 4.19.313 , ≤ 4.19.* (semver)
Unaffected: 5.4.275 , ≤ 5.4.* (semver)
Unaffected: 5.10.216 , ≤ 5.10.* (semver)
Unaffected: 5.15.158 , ≤ 5.15.* (semver)
Unaffected: 6.1.90 , ≤ 6.1.* (semver)
Unaffected: 6.6.30 , ≤ 6.6.* (semver)
Unaffected: 6.8.9 , ≤ 6.8.* (semver)
Unaffected: 6.9 , ≤ * (original_commit_for_fix)
Create a notification for this product.
Show details on NVD website

{
  "containers": {
    "adp": [
      {
        "metrics": [
          {
            "other": {
              "content": {
                "id": "CVE-2024-35847",
                "options": [
                  {
                    "Exploitation": "none"
                  },
                  {
                    "Automatable": "no"
                  },
                  {
                    "Technical Impact": "partial"
                  }
                ],
                "role": "CISA Coordinator",
                "timestamp": "2024-06-12T15:13:12.628141Z",
                "version": "2.0.3"
              },
              "type": "ssvc"
            }
          }
        ],
        "providerMetadata": {
          "dateUpdated": "2024-06-12T15:13:20.451Z",
          "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
          "shortName": "CISA-ADP"
        },
        "title": "CISA ADP Vulnrichment"
      },
      {
        "providerMetadata": {
          "dateUpdated": "2024-08-02T03:21:48.906Z",
          "orgId": "af854a3a-2127-422b-91ae-364da2661108",
          "shortName": "CVE"
        },
        "references": [
          {
            "tags": [
              "x_transferred"
            ],
            "url": "https://git.kernel.org/stable/c/f5417ff561b8ac9a7e53c747b8627a7ab58378ae"
          },
          {
            "tags": [
              "x_transferred"
            ],
            "url": "https://git.kernel.org/stable/c/b72d2b1448b682844f995e660b77f2a1fabc1662"
          },
          {
            "tags": [
              "x_transferred"
            ],
            "url": "https://git.kernel.org/stable/c/aa44d21574751a7d6bca892eb8e0e9ac68372e52"
          },
          {
            "tags": [
              "x_transferred"
            ],
            "url": "https://git.kernel.org/stable/c/5dbdbe1133911ca7d8466bb86885adec32ad9438"
          },
          {
            "tags": [
              "x_transferred"
            ],
            "url": "https://git.kernel.org/stable/c/dd681710ab77c8beafe2e263064cb1bd0e2d6ca9"
          },
          {
            "tags": [
              "x_transferred"
            ],
            "url": "https://git.kernel.org/stable/c/03170e657f62c26834172742492a8cb8077ef792"
          },
          {
            "tags": [
              "x_transferred"
            ],
            "url": "https://git.kernel.org/stable/c/5b012f77abde89bf0be8a0547636184fea618137"
          },
          {
            "tags": [
              "x_transferred"
            ],
            "url": "https://git.kernel.org/stable/c/c26591afd33adce296c022e3480dea4282b7ef91"
          },
          {
            "tags": [
              "x_transferred"
            ],
            "url": "https://lists.debian.org/debian-lts-announce/2024/06/msg00017.html"
          },
          {
            "tags": [
              "x_transferred"
            ],
            "url": "https://lists.debian.org/debian-lts-announce/2024/06/msg00020.html"
          }
        ],
        "title": "CVE Program Container"
      }
    ],
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "drivers/irqchip/irq-gic-v3-its.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "f5417ff561b8ac9a7e53c747b8627a7ab58378ae",
              "status": "affected",
              "version": "7d75bbb4bc1ad90386776459d37e4ddfe605671e",
              "versionType": "git"
            },
            {
              "lessThan": "b72d2b1448b682844f995e660b77f2a1fabc1662",
              "status": "affected",
              "version": "7d75bbb4bc1ad90386776459d37e4ddfe605671e",
              "versionType": "git"
            },
            {
              "lessThan": "aa44d21574751a7d6bca892eb8e0e9ac68372e52",
              "status": "affected",
              "version": "7d75bbb4bc1ad90386776459d37e4ddfe605671e",
              "versionType": "git"
            },
            {
              "lessThan": "5dbdbe1133911ca7d8466bb86885adec32ad9438",
              "status": "affected",
              "version": "7d75bbb4bc1ad90386776459d37e4ddfe605671e",
              "versionType": "git"
            },
            {
              "lessThan": "dd681710ab77c8beafe2e263064cb1bd0e2d6ca9",
              "status": "affected",
              "version": "7d75bbb4bc1ad90386776459d37e4ddfe605671e",
              "versionType": "git"
            },
            {
              "lessThan": "03170e657f62c26834172742492a8cb8077ef792",
              "status": "affected",
              "version": "7d75bbb4bc1ad90386776459d37e4ddfe605671e",
              "versionType": "git"
            },
            {
              "lessThan": "5b012f77abde89bf0be8a0547636184fea618137",
              "status": "affected",
              "version": "7d75bbb4bc1ad90386776459d37e4ddfe605671e",
              "versionType": "git"
            },
            {
              "lessThan": "c26591afd33adce296c022e3480dea4282b7ef91",
              "status": "affected",
              "version": "7d75bbb4bc1ad90386776459d37e4ddfe605671e",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "drivers/irqchip/irq-gic-v3-its.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "4.14"
            },
            {
              "lessThan": "4.14",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "4.19.*",
              "status": "unaffected",
              "version": "4.19.313",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.4.*",
              "status": "unaffected",
              "version": "5.4.275",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.10.*",
              "status": "unaffected",
              "version": "5.10.216",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.15.*",
              "status": "unaffected",
              "version": "5.15.158",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.1.*",
              "status": "unaffected",
              "version": "6.1.90",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.6.*",
              "status": "unaffected",
              "version": "6.6.30",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.8.*",
              "status": "unaffected",
              "version": "6.8.9",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "6.9",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "4.19.313",
                  "versionStartIncluding": "4.14",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.4.275",
                  "versionStartIncluding": "4.14",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.10.216",
                  "versionStartIncluding": "4.14",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.15.158",
                  "versionStartIncluding": "4.14",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.1.90",
                  "versionStartIncluding": "4.14",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.6.30",
                  "versionStartIncluding": "4.14",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.8.9",
                  "versionStartIncluding": "4.14",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.9",
                  "versionStartIncluding": "4.14",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nirqchip/gic-v3-its: Prevent double free on error\n\nThe error handling path in its_vpe_irq_domain_alloc() causes a double free\nwhen its_vpe_init() fails after successfully allocating at least one\ninterrupt. This happens because its_vpe_irq_domain_free() frees the\ninterrupts along with the area bitmap and the vprop_page and\nits_vpe_irq_domain_alloc() subsequently frees the area bitmap and the\nvprop_page again.\n\nFix this by unconditionally invoking its_vpe_irq_domain_free() which\nhandles all cases correctly and by removing the bitmap/vprop_page freeing\nfrom its_vpe_irq_domain_alloc().\n\n[ tglx: Massaged change log ]"
        }
      ],
      "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 only path into `its_vpe_irq_domain_alloc()` is the local `/dev/kvm` ioctl chain (`KVM_CREATE_VM`/`KVM_CREATE_VCPU`/`KVM_CREATE_DEVICE`/`KVM_DEV_ARM_ VGIC_CTRL_INIT` \u2192 `vgic_v4_init()` \u2192 `its_alloc_vcpu_irqs()`). No network, adjacent, or remote-peer input reaches this code.\nAC:L - The attacker deterministically creates the failure condition by exhausting the global 65536-entry `its_vpeid_ida` with its own VMs/vCPUs, then launching a multi-vCPU VM so vCPU 0 succeeds and vCPU 1 gets `-ENOSPC` \u2014 and it also chooses `nr_vcpus`, which selects the bitmap\u0027s kmalloc size class for grooming. Nothing depends on a race or on state outside the attacker\u0027s control; GICv4 hardware is the vulnerable configuration, not an attacker-uncontrolled precondition.\nPR:L - Only an unprivileged local account with an fd on `/dev/kvm` is needed \u2014 the `kvm` group on ordinary distros, world-accessible on many Android/ChromeOS/cloud images, and routinely passed into containers and untrusted-tenant VMM processes. There is no capability check on `vgic_init()`/`vgic_v4_init()`/`its_alloc_vcpu_irqs()`.\nUI:N - The attacker performs every step itself \u2014 draining the VPE ID space with its own VMs, then creating the VM whose vGIC init trips the error path. No victim action or other user\u0027s involvement is required.\nS:U - The defect and its consequences are confined to host kernel memory within a single security authority; no VM-escape, IOMMU, or sandbox boundary is crossed by the corruption itself.\nC:H - The `kmalloc()` inside the second `free_lpi_range()` reallocates the just-freed bitmap as a live `struct lpi_range`, which is then freed again, leaving a list-linked object on the slab freelist \u2014 a use-after-free the attacker can realloc and read back, giving uncontrolled disclosure of kernel memory. The duplicated `free_lpi_range()` additionally hands identical LPI IDs to two different devices/VMs, aliasing interrupt configuration and pending state across owners.\nI:H - The same dangling `lpi_range` can be re-allocated with attacker-controlled bytes, so `merge_lpi_ranges()`/`list_del()` operate on a forged `list_head` \u2014 a write-what-where primitive suitable for control-flow hijacking and privilege escalation. The order-4 `vprop_page` is also released twice, corrupting buddy-allocator state.\nA:H - Even unexploited, the double `kfree()`/`free_pages()` trips SLUB double-free detection, page refcount underflow, or later freelist corruption, producing an oops or panic. Any local user with `/dev/kvm` can trigger it at will and repeatedly."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-05T11:30:16.581Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/f5417ff561b8ac9a7e53c747b8627a7ab58378ae"
        },
        {
          "url": "https://git.kernel.org/stable/c/b72d2b1448b682844f995e660b77f2a1fabc1662"
        },
        {
          "url": "https://git.kernel.org/stable/c/aa44d21574751a7d6bca892eb8e0e9ac68372e52"
        },
        {
          "url": "https://git.kernel.org/stable/c/5dbdbe1133911ca7d8466bb86885adec32ad9438"
        },
        {
          "url": "https://git.kernel.org/stable/c/dd681710ab77c8beafe2e263064cb1bd0e2d6ca9"
        },
        {
          "url": "https://git.kernel.org/stable/c/03170e657f62c26834172742492a8cb8077ef792"
        },
        {
          "url": "https://git.kernel.org/stable/c/5b012f77abde89bf0be8a0547636184fea618137"
        },
        {
          "url": "https://git.kernel.org/stable/c/c26591afd33adce296c022e3480dea4282b7ef91"
        }
      ],
      "title": "irqchip/gic-v3-its: Prevent double free on error",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2024-35847",
    "datePublished": "2024-05-17T14:47:26.175Z",
    "dateReserved": "2024-05-17T13:50:33.105Z",
    "dateUpdated": "2026-08-05T11:30:16.581Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "epss": {
      "cve": "CVE-2024-35847",
      "date": "2026-08-10",
      "epss": "0.00263",
      "percentile": "0.1791"
    },
    "fkie_nvd": {
      "configurations": "[{\"nodes\": [{\"operator\": \"OR\", \"negate\": false, \"cpeMatch\": [{\"vulnerable\": true, \"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"versionStartIncluding\": \"4.14\", \"versionEndExcluding\": \"4.19.313\", \"matchCriteriaId\": \"CE409D27-D8FA-4B60-97C2-F08F2F83E6EF\"}, {\"vulnerable\": true, \"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"versionStartIncluding\": \"4.20\", \"versionEndExcluding\": \"5.4.275\", \"matchCriteriaId\": \"5FF6D8DE-C559-4586-86C8-2C6B4420A2C2\"}, {\"vulnerable\": true, \"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"versionStartIncluding\": \"5.5\", \"versionEndExcluding\": \"5.10.216\", \"matchCriteriaId\": \"A44ABF89-F1BD-4C9A-895D-7596650DCD27\"}, {\"vulnerable\": true, \"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"versionStartIncluding\": \"5.11\", \"versionEndExcluding\": \"5.15.158\", \"matchCriteriaId\": \"65D80EF6-76AF-4186-B680-55516EA42EED\"}, {\"vulnerable\": true, \"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"versionStartIncluding\": \"5.16\", \"versionEndExcluding\": \"6.1.90\", \"matchCriteriaId\": \"59CEDDCF-5C0D-4939-9CFE-2F4524892DD3\"}, {\"vulnerable\": true, \"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"versionStartIncluding\": \"6.2\", \"versionEndExcluding\": \"6.6.30\", \"matchCriteriaId\": \"84046DAF-73CF-429D-9BA4-05B658B377B5\"}, {\"vulnerable\": true, \"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"versionStartIncluding\": \"6.7\", \"versionEndExcluding\": \"6.8.9\", \"matchCriteriaId\": \"5F9041E5-8358-4EF7-8F98-B812EDE49612\"}, {\"vulnerable\": true, \"criteria\": \"cpe:2.3:o:linux:linux_kernel:6.9:rc1:*:*:*:*:*:*\", \"matchCriteriaId\": \"22BEDD49-2C6D-402D-9DBF-6646F6ECD10B\"}, {\"vulnerable\": true, \"criteria\": \"cpe:2.3:o:linux:linux_kernel:6.9:rc2:*:*:*:*:*:*\", \"matchCriteriaId\": \"DF73CB2A-DFFD-46FB-9BFE-AA394F27EA37\"}, {\"vulnerable\": true, \"criteria\": \"cpe:2.3:o:linux:linux_kernel:6.9:rc3:*:*:*:*:*:*\", \"matchCriteriaId\": \"52048DDA-FC5A-4363-95A0-A6357B4D7F8C\"}, {\"vulnerable\": true, \"criteria\": \"cpe:2.3:o:linux:linux_kernel:6.9:rc4:*:*:*:*:*:*\", \"matchCriteriaId\": \"A06B2CCF-3F43-4FA9-8773-C83C3F5764B2\"}, {\"vulnerable\": true, \"criteria\": \"cpe:2.3:o:linux:linux_kernel:6.9:rc5:*:*:*:*:*:*\", \"matchCriteriaId\": \"F850DCEC-E08B-4317-A33B-D2DCF39F601B\"}]}]}, {\"nodes\": [{\"operator\": \"OR\", \"negate\": false, \"cpeMatch\": [{\"vulnerable\": true, \"criteria\": \"cpe:2.3:o:debian:debian_linux:10.0:*:*:*:*:*:*:*\", \"matchCriteriaId\": \"07B237A9-69A3-4A9C-9DA0-4E06BD37AE73\"}]}]}]",
      "descriptions": "[{\"lang\": \"en\", \"value\": \"In the Linux kernel, the following vulnerability has been resolved:\\n\\nirqchip/gic-v3-its: Prevent double free on error\\n\\nThe error handling path in its_vpe_irq_domain_alloc() causes a double free\\nwhen its_vpe_init() fails after successfully allocating at least one\\ninterrupt. This happens because its_vpe_irq_domain_free() frees the\\ninterrupts along with the area bitmap and the vprop_page and\\nits_vpe_irq_domain_alloc() subsequently frees the area bitmap and the\\nvprop_page again.\\n\\nFix this by unconditionally invoking its_vpe_irq_domain_free() which\\nhandles all cases correctly and by removing the bitmap/vprop_page freeing\\nfrom its_vpe_irq_domain_alloc().\\n\\n[ tglx: Massaged change log ]\"}, {\"lang\": \"es\", \"value\": \"En el kernel de Linux, se resolvi\\u00f3 la siguiente vulnerabilidad: irqchip/gic-v3-its: Evitar el double free en caso de error. La ruta de manejo de errores en its_vpe_irq_domain_alloc() provoca un double free cuando its_vpe_init() falla despu\\u00e9s de asignar exitosamente al menos una interrupci\\u00f3n. Esto sucede porque its_vpe_irq_domain_free() libera las interrupciones junto con el mapa de bits del \\u00e1rea y la vprop_page y its_vpe_irq_domain_alloc() posteriormente libera nuevamente el mapa de bits del \\u00e1rea y la vprop_page. Solucione este problema invocando incondicionalmente its_vpe_irq_domain_free() que maneja todos los casos correctamente y eliminando el mapa de bits/vprop_page que se libera de its_vpe_irq_domain_alloc().\"}]",
      "id": "CVE-2024-35847",
      "lastModified": "2024-12-30T17:41:16.633",
      "metrics": "{\"cvssMetricV31\": [{\"source\": \"nvd@nist.gov\", \"type\": \"Primary\", \"cvssData\": {\"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\", \"attackVector\": \"LOCAL\", \"attackComplexity\": \"LOW\", \"privilegesRequired\": \"LOW\", \"userInteraction\": \"NONE\", \"scope\": \"UNCHANGED\", \"confidentialityImpact\": \"HIGH\", \"integrityImpact\": \"HIGH\", \"availabilityImpact\": \"HIGH\"}, \"exploitabilityScore\": 1.8, \"impactScore\": 5.9}]}",
      "published": "2024-05-17T15:15:21.620",
      "references": "[{\"url\": \"https://git.kernel.org/stable/c/03170e657f62c26834172742492a8cb8077ef792\", \"source\": \"416baaa9-dc9f-4396-8d5f-8c081fb06d67\", \"tags\": [\"Patch\"]}, {\"url\": \"https://git.kernel.org/stable/c/5b012f77abde89bf0be8a0547636184fea618137\", \"source\": \"416baaa9-dc9f-4396-8d5f-8c081fb06d67\", \"tags\": [\"Patch\"]}, {\"url\": \"https://git.kernel.org/stable/c/5dbdbe1133911ca7d8466bb86885adec32ad9438\", \"source\": \"416baaa9-dc9f-4396-8d5f-8c081fb06d67\", \"tags\": [\"Patch\"]}, {\"url\": \"https://git.kernel.org/stable/c/aa44d21574751a7d6bca892eb8e0e9ac68372e52\", \"source\": \"416baaa9-dc9f-4396-8d5f-8c081fb06d67\", \"tags\": [\"Patch\"]}, {\"url\": \"https://git.kernel.org/stable/c/b72d2b1448b682844f995e660b77f2a1fabc1662\", \"source\": \"416baaa9-dc9f-4396-8d5f-8c081fb06d67\", \"tags\": [\"Patch\"]}, {\"url\": \"https://git.kernel.org/stable/c/c26591afd33adce296c022e3480dea4282b7ef91\", \"source\": \"416baaa9-dc9f-4396-8d5f-8c081fb06d67\", \"tags\": [\"Patch\"]}, {\"url\": \"https://git.kernel.org/stable/c/dd681710ab77c8beafe2e263064cb1bd0e2d6ca9\", \"source\": \"416baaa9-dc9f-4396-8d5f-8c081fb06d67\", \"tags\": [\"Patch\"]}, {\"url\": \"https://git.kernel.org/stable/c/f5417ff561b8ac9a7e53c747b8627a7ab58378ae\", \"source\": \"416baaa9-dc9f-4396-8d5f-8c081fb06d67\", \"tags\": [\"Patch\"]}, {\"url\": \"https://git.kernel.org/stable/c/03170e657f62c26834172742492a8cb8077ef792\", \"source\": \"af854a3a-2127-422b-91ae-364da2661108\", \"tags\": [\"Patch\"]}, {\"url\": \"https://git.kernel.org/stable/c/5b012f77abde89bf0be8a0547636184fea618137\", \"source\": \"af854a3a-2127-422b-91ae-364da2661108\", \"tags\": [\"Patch\"]}, {\"url\": \"https://git.kernel.org/stable/c/5dbdbe1133911ca7d8466bb86885adec32ad9438\", \"source\": \"af854a3a-2127-422b-91ae-364da2661108\", \"tags\": [\"Patch\"]}, {\"url\": \"https://git.kernel.org/stable/c/aa44d21574751a7d6bca892eb8e0e9ac68372e52\", \"source\": \"af854a3a-2127-422b-91ae-364da2661108\", \"tags\": [\"Patch\"]}, {\"url\": \"https://git.kernel.org/stable/c/b72d2b1448b682844f995e660b77f2a1fabc1662\", \"source\": \"af854a3a-2127-422b-91ae-364da2661108\", \"tags\": [\"Patch\"]}, {\"url\": \"https://git.kernel.org/stable/c/c26591afd33adce296c022e3480dea4282b7ef91\", \"source\": \"af854a3a-2127-422b-91ae-364da2661108\", \"tags\": [\"Patch\"]}, {\"url\": \"https://git.kernel.org/stable/c/dd681710ab77c8beafe2e263064cb1bd0e2d6ca9\", \"source\": \"af854a3a-2127-422b-91ae-364da2661108\", \"tags\": [\"Patch\"]}, {\"url\": \"https://git.kernel.org/stable/c/f5417ff561b8ac9a7e53c747b8627a7ab58378ae\", \"source\": \"af854a3a-2127-422b-91ae-364da2661108\", \"tags\": [\"Patch\"]}, {\"url\": \"https://lists.debian.org/debian-lts-announce/2024/06/msg00017.html\", \"source\": \"af854a3a-2127-422b-91ae-364da2661108\", \"tags\": [\"Patch\"]}, {\"url\": \"https://lists.debian.org/debian-lts-announce/2024/06/msg00020.html\", \"source\": \"af854a3a-2127-422b-91ae-364da2661108\", \"tags\": [\"Patch\"]}]",
      "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
      "vulnStatus": "Analyzed",
      "weaknesses": "[{\"source\": \"nvd@nist.gov\", \"type\": \"Primary\", \"description\": [{\"lang\": \"en\", \"value\": \"CWE-415\"}]}]"
    },
    "nvd": "{\"cve\":{\"id\":\"CVE-2024-35847\",\"sourceIdentifier\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"published\":\"2024-05-17T15:15:21.620\",\"lastModified\":\"2026-08-04T11:17:58.660\",\"vulnStatus\":\"Modified\",\"cveTags\":[],\"descriptions\":[{\"lang\":\"en\",\"value\":\"In the Linux kernel, the following vulnerability has been resolved:\\n\\nirqchip/gic-v3-its: Prevent double free on error\\n\\nThe error handling path in its_vpe_irq_domain_alloc() causes a double free\\nwhen its_vpe_init() fails after successfully allocating at least one\\ninterrupt. This happens because its_vpe_irq_domain_free() frees the\\ninterrupts along with the area bitmap and the vprop_page and\\nits_vpe_irq_domain_alloc() subsequently frees the area bitmap and the\\nvprop_page again.\\n\\nFix this by unconditionally invoking its_vpe_irq_domain_free() which\\nhandles all cases correctly and by removing the bitmap/vprop_page freeing\\nfrom its_vpe_irq_domain_alloc().\\n\\n[ tglx: Massaged change log ]\"},{\"lang\":\"es\",\"value\":\"En el kernel de Linux, se resolvi\u00f3 la siguiente vulnerabilidad: irqchip/gic-v3-its: Evitar el double free en caso de error. La ruta de manejo de errores en its_vpe_irq_domain_alloc() provoca un double free cuando its_vpe_init() falla despu\u00e9s de asignar exitosamente al menos una interrupci\u00f3n. Esto sucede porque its_vpe_irq_domain_free() libera las interrupciones junto con el mapa de bits del \u00e1rea y la vprop_page y its_vpe_irq_domain_alloc() posteriormente libera nuevamente el mapa de bits del \u00e1rea y la vprop_page. Solucione este problema invocando incondicionalmente its_vpe_irq_domain_free() que maneja todos los casos correctamente y eliminando el mapa de bits/vprop_page que se libera de its_vpe_irq_domain_alloc().\"}],\"affected\":[{\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"affectedData\":[{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"unaffected\",\"programFiles\":[\"drivers/irqchip/irq-gic-v3-its.c\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"7d75bbb4bc1ad90386776459d37e4ddfe605671e\",\"lessThan\":\"f5417ff561b8ac9a7e53c747b8627a7ab58378ae\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"7d75bbb4bc1ad90386776459d37e4ddfe605671e\",\"lessThan\":\"b72d2b1448b682844f995e660b77f2a1fabc1662\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"7d75bbb4bc1ad90386776459d37e4ddfe605671e\",\"lessThan\":\"aa44d21574751a7d6bca892eb8e0e9ac68372e52\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"7d75bbb4bc1ad90386776459d37e4ddfe605671e\",\"lessThan\":\"5dbdbe1133911ca7d8466bb86885adec32ad9438\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"7d75bbb4bc1ad90386776459d37e4ddfe605671e\",\"lessThan\":\"dd681710ab77c8beafe2e263064cb1bd0e2d6ca9\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"7d75bbb4bc1ad90386776459d37e4ddfe605671e\",\"lessThan\":\"03170e657f62c26834172742492a8cb8077ef792\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"7d75bbb4bc1ad90386776459d37e4ddfe605671e\",\"lessThan\":\"5b012f77abde89bf0be8a0547636184fea618137\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"7d75bbb4bc1ad90386776459d37e4ddfe605671e\",\"lessThan\":\"c26591afd33adce296c022e3480dea4282b7ef91\",\"versionType\":\"git\",\"status\":\"affected\"}]},{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"affected\",\"programFiles\":[\"drivers/irqchip/irq-gic-v3-its.c\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"4.14\",\"status\":\"affected\"},{\"version\":\"0\",\"lessThan\":\"4.14\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"4.19.313\",\"lessThanOrEqual\":\"4.19.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"5.4.275\",\"lessThanOrEqual\":\"5.4.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"5.10.216\",\"lessThanOrEqual\":\"5.10.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"5.15.158\",\"lessThanOrEqual\":\"5.15.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.1.90\",\"lessThanOrEqual\":\"6.1.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.6.30\",\"lessThanOrEqual\":\"6.6.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.8.9\",\"lessThanOrEqual\":\"6.8.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.9\",\"lessThanOrEqual\":\"*\",\"versionType\":\"original_commit_for_fix\",\"status\":\"unaffected\"}]}]}],\"metrics\":{\"cvssMetricV31\":[{\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"type\":\"Secondary\",\"cvssData\":{\"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\",\"attackVector\":\"LOCAL\",\"attackComplexity\":\"LOW\",\"privilegesRequired\":\"LOW\",\"userInteraction\":\"NONE\",\"scope\":\"UNCHANGED\",\"confidentialityImpact\":\"HIGH\",\"integrityImpact\":\"HIGH\",\"availabilityImpact\":\"HIGH\"},\"exploitabilityScore\":1.8,\"impactScore\":5.9},{\"source\":\"nvd@nist.gov\",\"type\":\"Primary\",\"cvssData\":{\"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\",\"attackVector\":\"LOCAL\",\"attackComplexity\":\"LOW\",\"privilegesRequired\":\"LOW\",\"userInteraction\":\"NONE\",\"scope\":\"UNCHANGED\",\"confidentialityImpact\":\"HIGH\",\"integrityImpact\":\"HIGH\",\"availabilityImpact\":\"HIGH\"},\"exploitabilityScore\":1.8,\"impactScore\":5.9}],\"ssvcV203\":[{\"source\":\"134c704f-9b21-4f2e-91b3-4a467353bcc0\",\"ssvcData\":{\"timestamp\":\"2024-06-12T15:13:12.628141Z\",\"id\":\"CVE-2024-35847\",\"options\":[{\"exploitation\":\"none\"},{\"automatable\":\"no\"},{\"technicalImpact\":\"partial\"}],\"role\":\"CISA Coordinator\",\"version\":\"2.0.3\"}}]},\"weaknesses\":[{\"source\":\"nvd@nist.gov\",\"type\":\"Primary\",\"description\":[{\"lang\":\"en\",\"value\":\"CWE-415\"}]}],\"configurations\":[{\"nodes\":[{\"operator\":\"OR\",\"negate\":false,\"cpeMatch\":[{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"4.14\",\"versionEndExcluding\":\"4.19.313\",\"matchCriteriaId\":\"CE409D27-D8FA-4B60-97C2-F08F2F83E6EF\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"4.20\",\"versionEndExcluding\":\"5.4.275\",\"matchCriteriaId\":\"5FF6D8DE-C559-4586-86C8-2C6B4420A2C2\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"5.5\",\"versionEndExcluding\":\"5.10.216\",\"matchCriteriaId\":\"A44ABF89-F1BD-4C9A-895D-7596650DCD27\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"5.11\",\"versionEndExcluding\":\"5.15.158\",\"matchCriteriaId\":\"65D80EF6-76AF-4186-B680-55516EA42EED\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"5.16\",\"versionEndExcluding\":\"6.1.90\",\"matchCriteriaId\":\"59CEDDCF-5C0D-4939-9CFE-2F4524892DD3\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"6.2\",\"versionEndExcluding\":\"6.6.30\",\"matchCriteriaId\":\"84046DAF-73CF-429D-9BA4-05B658B377B5\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"6.7\",\"versionEndExcluding\":\"6.8.9\",\"matchCriteriaId\":\"5F9041E5-8358-4EF7-8F98-B812EDE49612\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:6.9:rc1:*:*:*:*:*:*\",\"matchCriteriaId\":\"22BEDD49-2C6D-402D-9DBF-6646F6ECD10B\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:6.9:rc2:*:*:*:*:*:*\",\"matchCriteriaId\":\"DF73CB2A-DFFD-46FB-9BFE-AA394F27EA37\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:6.9:rc3:*:*:*:*:*:*\",\"matchCriteriaId\":\"52048DDA-FC5A-4363-95A0-A6357B4D7F8C\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:6.9:rc4:*:*:*:*:*:*\",\"matchCriteriaId\":\"A06B2CCF-3F43-4FA9-8773-C83C3F5764B2\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:6.9:rc5:*:*:*:*:*:*\",\"matchCriteriaId\":\"F850DCEC-E08B-4317-A33B-D2DCF39F601B\"}]}]},{\"nodes\":[{\"operator\":\"OR\",\"negate\":false,\"cpeMatch\":[{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:debian:debian_linux:10.0:*:*:*:*:*:*:*\",\"matchCriteriaId\":\"07B237A9-69A3-4A9C-9DA0-4E06BD37AE73\"}]}]}],\"references\":[{\"url\":\"https://git.kernel.org/stable/c/03170e657f62c26834172742492a8cb8077ef792\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/5b012f77abde89bf0be8a0547636184fea618137\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/5dbdbe1133911ca7d8466bb86885adec32ad9438\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/aa44d21574751a7d6bca892eb8e0e9ac68372e52\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/b72d2b1448b682844f995e660b77f2a1fabc1662\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/c26591afd33adce296c022e3480dea4282b7ef91\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/dd681710ab77c8beafe2e263064cb1bd0e2d6ca9\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/f5417ff561b8ac9a7e53c747b8627a7ab58378ae\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/03170e657f62c26834172742492a8cb8077ef792\",\"source\":\"af854a3a-2127-422b-91ae-364da2661108\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/5b012f77abde89bf0be8a0547636184fea618137\",\"source\":\"af854a3a-2127-422b-91ae-364da2661108\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/5dbdbe1133911ca7d8466bb86885adec32ad9438\",\"source\":\"af854a3a-2127-422b-91ae-364da2661108\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/aa44d21574751a7d6bca892eb8e0e9ac68372e52\",\"source\":\"af854a3a-2127-422b-91ae-364da2661108\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/b72d2b1448b682844f995e660b77f2a1fabc1662\",\"source\":\"af854a3a-2127-422b-91ae-364da2661108\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/c26591afd33adce296c022e3480dea4282b7ef91\",\"source\":\"af854a3a-2127-422b-91ae-364da2661108\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/dd681710ab77c8beafe2e263064cb1bd0e2d6ca9\",\"source\":\"af854a3a-2127-422b-91ae-364da2661108\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/f5417ff561b8ac9a7e53c747b8627a7ab58378ae\",\"source\":\"af854a3a-2127-422b-91ae-364da2661108\",\"tags\":[\"Patch\"]},{\"url\":\"https://lists.debian.org/debian-lts-announce/2024/06/msg00017.html\",\"source\":\"af854a3a-2127-422b-91ae-364da2661108\",\"tags\":[\"Patch\"]},{\"url\":\"https://lists.debian.org/debian-lts-announce/2024/06/msg00020.html\",\"source\":\"af854a3a-2127-422b-91ae-364da2661108\",\"tags\":[\"Patch\"]}]}}",
    "redhat_vex": {
      "aggregate_severity": "Low",
      "current_release_date": "2026-08-04T22:47:14+00:00",
      "cve": "CVE-2024-35847",
      "id": "CVE-2024-35847",
      "initial_release_date": "2024-05-17T00:00:00+00:00",
      "product_status:fixed": "709",
      "product_status:known_affected": "22",
      "product_status:known_not_affected": "50",
      "source": "Red Hat CSAF VEX",
      "status": "final",
      "title": "kernel: irqchip/gic-v3-its: Prevent double free on error",
      "url": "https://security.access.redhat.com/data/csaf/v2/vex/2024/cve-2024-35847.json",
      "version": "3"
    },
    "suse_vex": {
      "aggregate_severity": "moderate",
      "current_release_date": "2026-08-05T00:59:10Z",
      "cve": "CVE-2024-35847",
      "id": "CVE-2024-35847",
      "initial_release_date": "2024-05-21T01:59:52Z",
      "product_status:known_affected": "547",
      "product_status:known_not_affected": "16",
      "product_status:recommended": "721",
      "source": "SUSE CSAF VEX",
      "status": "interim",
      "title": "SUSE CVE CVE-2024-35847",
      "url": "https://ftp.suse.com/pub/projects/security/csaf-vex/cve-2024-35847.json",
      "version": "101"
    },
    "vulnrichment": {
      "containers": "{\"adp\": [{\"title\": \"CVE Program Container\", \"references\": [{\"url\": \"https://git.kernel.org/stable/c/f5417ff561b8ac9a7e53c747b8627a7ab58378ae\", \"tags\": [\"x_transferred\"]}, {\"url\": \"https://git.kernel.org/stable/c/b72d2b1448b682844f995e660b77f2a1fabc1662\", \"tags\": [\"x_transferred\"]}, {\"url\": \"https://git.kernel.org/stable/c/aa44d21574751a7d6bca892eb8e0e9ac68372e52\", \"tags\": [\"x_transferred\"]}, {\"url\": \"https://git.kernel.org/stable/c/5dbdbe1133911ca7d8466bb86885adec32ad9438\", \"tags\": [\"x_transferred\"]}, {\"url\": \"https://git.kernel.org/stable/c/dd681710ab77c8beafe2e263064cb1bd0e2d6ca9\", \"tags\": [\"x_transferred\"]}, {\"url\": \"https://git.kernel.org/stable/c/03170e657f62c26834172742492a8cb8077ef792\", \"tags\": [\"x_transferred\"]}, {\"url\": \"https://git.kernel.org/stable/c/5b012f77abde89bf0be8a0547636184fea618137\", \"tags\": [\"x_transferred\"]}, {\"url\": \"https://git.kernel.org/stable/c/c26591afd33adce296c022e3480dea4282b7ef91\", \"tags\": [\"x_transferred\"]}, {\"url\": \"https://lists.debian.org/debian-lts-announce/2024/06/msg00017.html\", \"tags\": [\"x_transferred\"]}, {\"url\": \"https://lists.debian.org/debian-lts-announce/2024/06/msg00020.html\", \"tags\": [\"x_transferred\"]}], \"providerMetadata\": {\"orgId\": \"af854a3a-2127-422b-91ae-364da2661108\", \"shortName\": \"CVE\", \"dateUpdated\": \"2024-08-02T03:21:48.906Z\"}}, {\"title\": \"CISA ADP Vulnrichment\", \"metrics\": [{\"other\": {\"type\": \"ssvc\", \"content\": {\"id\": \"CVE-2024-35847\", \"role\": \"CISA Coordinator\", \"options\": [{\"Exploitation\": \"none\"}, {\"Automatable\": \"no\"}, {\"Technical Impact\": \"partial\"}], \"version\": \"2.0.3\", \"timestamp\": \"2024-06-12T15:13:12.628141Z\"}}}], \"providerMetadata\": {\"orgId\": \"134c704f-9b21-4f2e-91b3-4a467353bcc0\", \"shortName\": \"CISA-ADP\", \"dateUpdated\": \"2024-06-12T15:13:17.215Z\"}}], \"cna\": {\"title\": \"irqchip/gic-v3-its: Prevent double free on error\", \"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 only path into `its_vpe_irq_domain_alloc()` is the local `/dev/kvm` ioctl chain (`KVM_CREATE_VM`/`KVM_CREATE_VCPU`/`KVM_CREATE_DEVICE`/`KVM_DEV_ARM_ VGIC_CTRL_INIT` \\u2192 `vgic_v4_init()` \\u2192 `its_alloc_vcpu_irqs()`). No network, adjacent, or remote-peer input reaches this code.\\nAC:L - The attacker deterministically creates the failure condition by exhausting the global 65536-entry `its_vpeid_ida` with its own VMs/vCPUs, then launching a multi-vCPU VM so vCPU 0 succeeds and vCPU 1 gets `-ENOSPC` \\u2014 and it also chooses `nr_vcpus`, which selects the bitmap\u0027s kmalloc size class for grooming. Nothing depends on a race or on state outside the attacker\u0027s control; GICv4 hardware is the vulnerable configuration, not an attacker-uncontrolled precondition.\\nPR:L - Only an unprivileged local account with an fd on `/dev/kvm` is needed \\u2014 the `kvm` group on ordinary distros, world-accessible on many Android/ChromeOS/cloud images, and routinely passed into containers and untrusted-tenant VMM processes. There is no capability check on `vgic_init()`/`vgic_v4_init()`/`its_alloc_vcpu_irqs()`.\\nUI:N - The attacker performs every step itself \\u2014 draining the VPE ID space with its own VMs, then creating the VM whose vGIC init trips the error path. No victim action or other user\u0027s involvement is required.\\nS:U - The defect and its consequences are confined to host kernel memory within a single security authority; no VM-escape, IOMMU, or sandbox boundary is crossed by the corruption itself.\\nC:H - The `kmalloc()` inside the second `free_lpi_range()` reallocates the just-freed bitmap as a live `struct lpi_range`, which is then freed again, leaving a list-linked object on the slab freelist \\u2014 a use-after-free the attacker can realloc and read back, giving uncontrolled disclosure of kernel memory. The duplicated `free_lpi_range()` additionally hands identical LPI IDs to two different devices/VMs, aliasing interrupt configuration and pending state across owners.\\nI:H - The same dangling `lpi_range` can be re-allocated with attacker-controlled bytes, so `merge_lpi_ranges()`/`list_del()` operate on a forged `list_head` \\u2014 a write-what-where primitive suitable for control-flow hijacking and privilege escalation. The order-4 `vprop_page` is also released twice, corrupting buddy-allocator state.\\nA:H - Even unexploited, the double `kfree()`/`free_pages()` trips SLUB double-free detection, page refcount underflow, or later freelist corruption, producing an oops or panic. Any local user with `/dev/kvm` can trigger it at will and repeatedly.\"}]}], \"affected\": [{\"repo\": \"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\", \"vendor\": \"Linux\", \"product\": \"Linux\", \"versions\": [{\"status\": \"affected\", \"version\": \"7d75bbb4bc1ad90386776459d37e4ddfe605671e\", \"lessThan\": \"f5417ff561b8ac9a7e53c747b8627a7ab58378ae\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"7d75bbb4bc1ad90386776459d37e4ddfe605671e\", \"lessThan\": \"b72d2b1448b682844f995e660b77f2a1fabc1662\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"7d75bbb4bc1ad90386776459d37e4ddfe605671e\", \"lessThan\": \"aa44d21574751a7d6bca892eb8e0e9ac68372e52\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"7d75bbb4bc1ad90386776459d37e4ddfe605671e\", \"lessThan\": \"5dbdbe1133911ca7d8466bb86885adec32ad9438\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"7d75bbb4bc1ad90386776459d37e4ddfe605671e\", \"lessThan\": \"dd681710ab77c8beafe2e263064cb1bd0e2d6ca9\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"7d75bbb4bc1ad90386776459d37e4ddfe605671e\", \"lessThan\": \"03170e657f62c26834172742492a8cb8077ef792\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"7d75bbb4bc1ad90386776459d37e4ddfe605671e\", \"lessThan\": \"5b012f77abde89bf0be8a0547636184fea618137\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"7d75bbb4bc1ad90386776459d37e4ddfe605671e\", \"lessThan\": \"c26591afd33adce296c022e3480dea4282b7ef91\", \"versionType\": \"git\"}], \"programFiles\": [\"drivers/irqchip/irq-gic-v3-its.c\"], \"defaultStatus\": \"unaffected\"}, {\"repo\": \"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\", \"vendor\": \"Linux\", \"product\": \"Linux\", \"versions\": [{\"status\": \"affected\", \"version\": \"4.14\"}, {\"status\": \"unaffected\", \"version\": \"0\", \"lessThan\": \"4.14\", \"versionType\": \"semver\"}, {\"status\": \"unaffected\", \"version\": \"4.19.313\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"4.19.*\"}, {\"status\": \"unaffected\", \"version\": \"5.4.275\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"5.4.*\"}, {\"status\": \"unaffected\", \"version\": \"5.10.216\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"5.10.*\"}, {\"status\": \"unaffected\", \"version\": \"5.15.158\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"5.15.*\"}, {\"status\": \"unaffected\", \"version\": \"6.1.90\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"6.1.*\"}, {\"status\": \"unaffected\", \"version\": \"6.6.30\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"6.6.*\"}, {\"status\": \"unaffected\", \"version\": \"6.8.9\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"6.8.*\"}, {\"status\": \"unaffected\", \"version\": \"6.9\", \"versionType\": \"original_commit_for_fix\", \"lessThanOrEqual\": \"*\"}], \"programFiles\": [\"drivers/irqchip/irq-gic-v3-its.c\"], \"defaultStatus\": \"affected\"}], \"references\": [{\"url\": \"https://git.kernel.org/stable/c/f5417ff561b8ac9a7e53c747b8627a7ab58378ae\"}, {\"url\": \"https://git.kernel.org/stable/c/b72d2b1448b682844f995e660b77f2a1fabc1662\"}, {\"url\": \"https://git.kernel.org/stable/c/aa44d21574751a7d6bca892eb8e0e9ac68372e52\"}, {\"url\": \"https://git.kernel.org/stable/c/5dbdbe1133911ca7d8466bb86885adec32ad9438\"}, {\"url\": \"https://git.kernel.org/stable/c/dd681710ab77c8beafe2e263064cb1bd0e2d6ca9\"}, {\"url\": \"https://git.kernel.org/stable/c/03170e657f62c26834172742492a8cb8077ef792\"}, {\"url\": \"https://git.kernel.org/stable/c/5b012f77abde89bf0be8a0547636184fea618137\"}, {\"url\": \"https://git.kernel.org/stable/c/c26591afd33adce296c022e3480dea4282b7ef91\"}], \"x_generator\": {\"engine\": \"bippy-1.2.0\"}, \"descriptions\": [{\"lang\": \"en\", \"value\": \"In the Linux kernel, the following vulnerability has been resolved:\\n\\nirqchip/gic-v3-its: Prevent double free on error\\n\\nThe error handling path in its_vpe_irq_domain_alloc() causes a double free\\nwhen its_vpe_init() fails after successfully allocating at least one\\ninterrupt. This happens because its_vpe_irq_domain_free() frees the\\ninterrupts along with the area bitmap and the vprop_page and\\nits_vpe_irq_domain_alloc() subsequently frees the area bitmap and the\\nvprop_page again.\\n\\nFix this by unconditionally invoking its_vpe_irq_domain_free() which\\nhandles all cases correctly and by removing the bitmap/vprop_page freeing\\nfrom its_vpe_irq_domain_alloc().\\n\\n[ tglx: Massaged change log ]\"}], \"cpeApplicability\": [{\"nodes\": [{\"negate\": false, \"cpeMatch\": [{\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"4.19.313\", \"versionStartIncluding\": \"4.14\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"5.4.275\", \"versionStartIncluding\": \"4.14\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"5.10.216\", \"versionStartIncluding\": \"4.14\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"5.15.158\", \"versionStartIncluding\": \"4.14\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"6.1.90\", \"versionStartIncluding\": \"4.14\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"6.6.30\", \"versionStartIncluding\": \"4.14\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"6.8.9\", \"versionStartIncluding\": \"4.14\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"6.9\", \"versionStartIncluding\": \"4.14\"}], \"operator\": \"OR\"}]}], \"providerMetadata\": {\"orgId\": \"416baaa9-dc9f-4396-8d5f-8c081fb06d67\", \"shortName\": \"Linux\", \"dateUpdated\": \"2026-08-05T11:30:16.581Z\"}}}",
      "cveMetadata": "{\"cveId\": \"CVE-2024-35847\", \"state\": \"PUBLISHED\", \"dateUpdated\": \"2026-08-05T11:30:16.581Z\", \"dateReserved\": \"2024-05-17T13:50:33.105Z\", \"assignerOrgId\": \"416baaa9-dc9f-4396-8d5f-8c081fb06d67\", \"datePublished\": \"2024-05-17T14:47:26.175Z\", \"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…

Forecast uses a logistic model when the trend is rising, or an exponential decay model when the trend is falling. Fitted via linearized least squares.

Sightings

Author Source Type Date Other

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or observed by the user.
  • Confirmed: The vulnerability has been validated from an analyst's perspective.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
  • Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
  • Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
  • Not confirmed: The user expressed doubt about the validity of the vulnerability.
  • Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.

Loading…

Detection rules are retrieved from Rulezet.

Loading…

Loading…

Loading…