CVE-2024-53075 (GCVE-0-2024-53075)

Vulnerability from cvelistv5 – Published: 2024-11-19 17:31 – Updated: 2025-05-04 09:52
VLAI?
Summary
In the Linux kernel, the following vulnerability has been resolved: riscv: Prevent a bad reference count on CPU nodes When populating cache leaves we previously fetched the CPU device node at the very beginning. But when ACPI is enabled we go through a specific branch which returns early and does not call 'of_node_put' for the node that was acquired. Since we are not using a CPU device node for the ACPI code anyways, we can simply move the initialization of it just passed the ACPI block, and we are guaranteed to have an 'of_node_put' call for the acquired node. This prevents a bad reference count of the CPU device node. Moreover, the previous function did not check for errors when acquiring the device node, so a return -ENOENT has been added for that case.
Severity ?
No CVSS data available.
Assigner
Impacted products
Vendor Product Version
Linux Linux Affected: ebccacb0b599fa788a16eff35a7de14621f56804 , < 80aec5a855106c668b5978c48e789f010198b832 (git)
Affected: 604f32ea6909b0ebb8ab0bf1ab7dc66ee3dc8955 , < 303846a3dc275e35fbb556d72f1e356ba669e4f8 (git)
Affected: 604f32ea6909b0ebb8ab0bf1ab7dc66ee3dc8955 , < 37233169a6ea912020c572f870075a63293b786a (git)
Create a notification for this product.
    Linux Linux Affected: 6.11
Unaffected: 0 , < 6.11 (semver)
Unaffected: 6.11.7 , ≤ 6.11.* (semver)
Unaffected: 6.12 , ≤ * (original_commit_for_fix)
Create a notification for this product.
Show details on NVD website

{
  "containers": {
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "arch/riscv/kernel/cacheinfo.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "80aec5a855106c668b5978c48e789f010198b832",
              "status": "affected",
              "version": "ebccacb0b599fa788a16eff35a7de14621f56804",
              "versionType": "git"
            },
            {
              "lessThan": "303846a3dc275e35fbb556d72f1e356ba669e4f8",
              "status": "affected",
              "version": "604f32ea6909b0ebb8ab0bf1ab7dc66ee3dc8955",
              "versionType": "git"
            },
            {
              "lessThan": "37233169a6ea912020c572f870075a63293b786a",
              "status": "affected",
              "version": "604f32ea6909b0ebb8ab0bf1ab7dc66ee3dc8955",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "arch/riscv/kernel/cacheinfo.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "6.11"
            },
            {
              "lessThan": "6.11",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.11.*",
              "status": "unaffected",
              "version": "6.11.7",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "6.12",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.11.7",
                  "versionStartIncluding": "6.11",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.12",
                  "versionStartIncluding": "6.11",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nriscv: Prevent a bad reference count on CPU nodes\n\nWhen populating cache leaves we previously fetched the CPU device node\nat the very beginning. But when ACPI is enabled we go through a\nspecific branch which returns early and does not call \u0027of_node_put\u0027 for\nthe node that was acquired.\n\nSince we are not using a CPU device node for the ACPI code anyways, we\ncan simply move the initialization of it just passed the ACPI block, and\nwe are guaranteed to have an \u0027of_node_put\u0027 call for the acquired node.\nThis prevents a bad reference count of the CPU device node.\n\nMoreover, the previous function did not check for errors when acquiring\nthe device node, so a return -ENOENT has been added for that case."
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2025-05-04T09:52:19.201Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/80aec5a855106c668b5978c48e789f010198b832"
        },
        {
          "url": "https://git.kernel.org/stable/c/303846a3dc275e35fbb556d72f1e356ba669e4f8"
        },
        {
          "url": "https://git.kernel.org/stable/c/37233169a6ea912020c572f870075a63293b786a"
        }
      ],
      "title": "riscv: Prevent a bad reference count on CPU nodes",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2024-53075",
    "datePublished": "2024-11-19T17:31:39.625Z",
    "dateReserved": "2024-11-19T17:17:24.976Z",
    "dateUpdated": "2025-05-04T09:52:19.201Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.1",
  "vulnerability-lookup:meta": {
    "fkie_nvd": {
      "configurations": "[{\"nodes\": [{\"operator\": \"OR\", \"negate\": false, \"cpeMatch\": [{\"vulnerable\": true, \"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"versionStartIncluding\": \"6.11\", \"versionEndExcluding\": \"6.11.7\", \"matchCriteriaId\": \"386941FE-51A4-4893-9EC3-054AD3863E8D\"}, {\"vulnerable\": true, \"criteria\": \"cpe:2.3:o:linux:linux_kernel:6.12:rc1:*:*:*:*:*:*\", \"matchCriteriaId\": \"7F361E1D-580F-4A2D-A509-7615F73167A1\"}, {\"vulnerable\": true, \"criteria\": \"cpe:2.3:o:linux:linux_kernel:6.12:rc2:*:*:*:*:*:*\", \"matchCriteriaId\": \"925478D0-3E3D-4E6F-ACD5-09F28D5DF82C\"}, {\"vulnerable\": true, \"criteria\": \"cpe:2.3:o:linux:linux_kernel:6.12:rc3:*:*:*:*:*:*\", \"matchCriteriaId\": \"3C95E234-D335-4B6C-96BF-E2CEBD8654ED\"}, {\"vulnerable\": true, \"criteria\": \"cpe:2.3:o:linux:linux_kernel:6.12:rc4:*:*:*:*:*:*\", \"matchCriteriaId\": \"E0F717D8-3014-4F84-8086-0124B2111379\"}, {\"vulnerable\": true, \"criteria\": \"cpe:2.3:o:linux:linux_kernel:6.12:rc5:*:*:*:*:*:*\", \"matchCriteriaId\": \"24DBE6C7-2AAE-4818-AED2-E131F153D2FA\"}]}]}]",
      "descriptions": "[{\"lang\": \"en\", \"value\": \"In the Linux kernel, the following vulnerability has been resolved:\\n\\nriscv: Prevent a bad reference count on CPU nodes\\n\\nWhen populating cache leaves we previously fetched the CPU device node\\nat the very beginning. But when ACPI is enabled we go through a\\nspecific branch which returns early and does not call \u0027of_node_put\u0027 for\\nthe node that was acquired.\\n\\nSince we are not using a CPU device node for the ACPI code anyways, we\\ncan simply move the initialization of it just passed the ACPI block, and\\nwe are guaranteed to have an \u0027of_node_put\u0027 call for the acquired node.\\nThis prevents a bad reference count of the CPU device node.\\n\\nMoreover, the previous function did not check for errors when acquiring\\nthe device node, so a return -ENOENT has been added for that case.\"}, {\"lang\": \"es\", \"value\": \"En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: riscv: Evitar un recuento de referencia incorrecto en los nodos de CPU Al rellenar las hojas de cach\\u00e9, anteriormente obten\\u00edamos el nodo del dispositivo de CPU al principio. Pero cuando ACPI est\\u00e1 habilitado, pasamos por una rama espec\\u00edfica que regresa temprano y no llama a \u0027of_node_put\u0027 para el nodo que se adquiri\\u00f3. Dado que de todos modos no estamos usando un nodo de dispositivo de CPU para el c\\u00f3digo ACPI, simplemente podemos mover la inicializaci\\u00f3n del mismo justo despu\\u00e9s del bloque ACPI, y tenemos la garant\\u00eda de tener una llamada \u0027of_node_put\u0027 para el nodo adquirido. Esto evita un recuento de referencia incorrecto del nodo del dispositivo de CPU. Adem\\u00e1s, la funci\\u00f3n anterior no verificaba si hab\\u00eda errores al adquirir el nodo del dispositivo, por lo que se agreg\\u00f3 un retorno -ENOENT para ese caso.\"}]",
      "id": "CVE-2024-53075",
      "lastModified": "2024-11-25T13:58:31.503",
      "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:N/I:N/A:H\", \"baseScore\": 5.5, \"baseSeverity\": \"MEDIUM\", \"attackVector\": \"LOCAL\", \"attackComplexity\": \"LOW\", \"privilegesRequired\": \"LOW\", \"userInteraction\": \"NONE\", \"scope\": \"UNCHANGED\", \"confidentialityImpact\": \"NONE\", \"integrityImpact\": \"NONE\", \"availabilityImpact\": \"HIGH\"}, \"exploitabilityScore\": 1.8, \"impactScore\": 3.6}]}",
      "published": "2024-11-19T18:15:27.077",
      "references": "[{\"url\": \"https://git.kernel.org/stable/c/303846a3dc275e35fbb556d72f1e356ba669e4f8\", \"source\": \"416baaa9-dc9f-4396-8d5f-8c081fb06d67\", \"tags\": [\"Patch\"]}, {\"url\": \"https://git.kernel.org/stable/c/37233169a6ea912020c572f870075a63293b786a\", \"source\": \"416baaa9-dc9f-4396-8d5f-8c081fb06d67\", \"tags\": [\"Patch\"]}]",
      "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
      "vulnStatus": "Analyzed",
      "weaknesses": "[{\"source\": \"nvd@nist.gov\", \"type\": \"Primary\", \"description\": [{\"lang\": \"en\", \"value\": \"NVD-CWE-Other\"}]}]"
    },
    "nvd": "{\"cve\":{\"id\":\"CVE-2024-53075\",\"sourceIdentifier\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"published\":\"2024-11-19T18:15:27.077\",\"lastModified\":\"2025-03-13T13:15:42.093\",\"vulnStatus\":\"Modified\",\"cveTags\":[],\"descriptions\":[{\"lang\":\"en\",\"value\":\"In the Linux kernel, the following vulnerability has been resolved:\\n\\nriscv: Prevent a bad reference count on CPU nodes\\n\\nWhen populating cache leaves we previously fetched the CPU device node\\nat the very beginning. But when ACPI is enabled we go through a\\nspecific branch which returns early and does not call \u0027of_node_put\u0027 for\\nthe node that was acquired.\\n\\nSince we are not using a CPU device node for the ACPI code anyways, we\\ncan simply move the initialization of it just passed the ACPI block, and\\nwe are guaranteed to have an \u0027of_node_put\u0027 call for the acquired node.\\nThis prevents a bad reference count of the CPU device node.\\n\\nMoreover, the previous function did not check for errors when acquiring\\nthe device node, so a return -ENOENT has been added for that case.\"},{\"lang\":\"es\",\"value\":\"En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: riscv: Evitar un recuento de referencia incorrecto en los nodos de CPU Al rellenar las hojas de cach\u00e9, anteriormente obten\u00edamos el nodo del dispositivo de CPU al principio. Pero cuando ACPI est\u00e1 habilitado, pasamos por una rama espec\u00edfica que regresa temprano y no llama a \u0027of_node_put\u0027 para el nodo que se adquiri\u00f3. Dado que de todos modos no estamos usando un nodo de dispositivo de CPU para el c\u00f3digo ACPI, simplemente podemos mover la inicializaci\u00f3n del mismo justo despu\u00e9s del bloque ACPI, y tenemos la garant\u00eda de tener una llamada \u0027of_node_put\u0027 para el nodo adquirido. Esto evita un recuento de referencia incorrecto del nodo del dispositivo de CPU. Adem\u00e1s, la funci\u00f3n anterior no verificaba si hab\u00eda errores al adquirir el nodo del dispositivo, por lo que se agreg\u00f3 un retorno -ENOENT para ese caso.\"}],\"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:N/I:N/A:H\",\"baseScore\":5.5,\"baseSeverity\":\"MEDIUM\",\"attackVector\":\"LOCAL\",\"attackComplexity\":\"LOW\",\"privilegesRequired\":\"LOW\",\"userInteraction\":\"NONE\",\"scope\":\"UNCHANGED\",\"confidentialityImpact\":\"NONE\",\"integrityImpact\":\"NONE\",\"availabilityImpact\":\"HIGH\"},\"exploitabilityScore\":1.8,\"impactScore\":3.6}]},\"weaknesses\":[{\"source\":\"nvd@nist.gov\",\"type\":\"Primary\",\"description\":[{\"lang\":\"en\",\"value\":\"NVD-CWE-Other\"}]}],\"configurations\":[{\"nodes\":[{\"operator\":\"OR\",\"negate\":false,\"cpeMatch\":[{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"6.11\",\"versionEndExcluding\":\"6.11.7\",\"matchCriteriaId\":\"386941FE-51A4-4893-9EC3-054AD3863E8D\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:6.12:rc1:*:*:*:*:*:*\",\"matchCriteriaId\":\"7F361E1D-580F-4A2D-A509-7615F73167A1\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:6.12:rc2:*:*:*:*:*:*\",\"matchCriteriaId\":\"925478D0-3E3D-4E6F-ACD5-09F28D5DF82C\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:6.12:rc3:*:*:*:*:*:*\",\"matchCriteriaId\":\"3C95E234-D335-4B6C-96BF-E2CEBD8654ED\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:6.12:rc4:*:*:*:*:*:*\",\"matchCriteriaId\":\"E0F717D8-3014-4F84-8086-0124B2111379\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:6.12:rc5:*:*:*:*:*:*\",\"matchCriteriaId\":\"24DBE6C7-2AAE-4818-AED2-E131F153D2FA\"}]}]}],\"references\":[{\"url\":\"https://git.kernel.org/stable/c/303846a3dc275e35fbb556d72f1e356ba669e4f8\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/37233169a6ea912020c572f870075a63293b786a\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/80aec5a855106c668b5978c48e789f010198b832\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"}]}}"
  }
}


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 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…