CVE-2024-26967 (GCVE-0-2024-26967)
Vulnerability from cvelistv5
Published
2024-05-01 05:19
Modified
2026-08-05 11:28
Summary
In the Linux kernel, the following vulnerability has been resolved: clk: qcom: camcc-sc8280xp: fix terminating of frequency table arrays The frequency table arrays are supposed to be terminated with an empty element. Add such entry to the end of the arrays where it is missing in order to avoid possible out-of-bound access when the table is traversed by functions like qcom_find_freq() or qcom_find_freq_floor(). Only compile tested.
Impacted products
Vendor Product Version
Linux Linux Version: ff93872a9c6168992ee41f2da9d9c3b8a6f8a8e5
Version: ff93872a9c6168992ee41f2da9d9c3b8a6f8a8e5
Create a notification for this product.
Show details on NVD website


{
  "containers": {
    "adp": [
      {
        "providerMetadata": {
          "dateUpdated": "2024-08-02T00:21:05.625Z",
          "orgId": "af854a3a-2127-422b-91ae-364da2661108",
          "shortName": "CVE"
        },
        "references": [
          {
            "tags": [
              "x_transferred"
            ],
            "url": "https://git.kernel.org/stable/c/93ff48729211dae55df5d216023be4528d29babb"
          },
          {
            "tags": [
              "x_transferred"
            ],
            "url": "https://git.kernel.org/stable/c/6a3d70f7802a98e6c28a74f997a264118b9f50cd"
          }
        ],
        "title": "CVE Program Container"
      },
      {
        "metrics": [
          {
            "other": {
              "content": {
                "id": "CVE-2024-26967",
                "options": [
                  {
                    "Exploitation": "none"
                  },
                  {
                    "Automatable": "no"
                  },
                  {
                    "Technical Impact": "partial"
                  }
                ],
                "role": "CISA Coordinator",
                "timestamp": "2024-09-10T15:45:19.880928Z",
                "version": "2.0.3"
              },
              "type": "ssvc"
            }
          }
        ],
        "providerMetadata": {
          "dateUpdated": "2024-09-11T17:33:45.901Z",
          "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
          "shortName": "CISA-ADP"
        },
        "title": "CISA ADP Vulnrichment"
      }
    ],
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "drivers/clk/qcom/camcc-sc8280xp.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "93ff48729211dae55df5d216023be4528d29babb",
              "status": "affected",
              "version": "ff93872a9c6168992ee41f2da9d9c3b8a6f8a8e5",
              "versionType": "git"
            },
            {
              "lessThan": "6a3d70f7802a98e6c28a74f997a264118b9f50cd",
              "status": "affected",
              "version": "ff93872a9c6168992ee41f2da9d9c3b8a6f8a8e5",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "drivers/clk/qcom/camcc-sc8280xp.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "6.8"
            },
            {
              "lessThan": "6.8",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.8.*",
              "status": "unaffected",
              "version": "6.8.3",
              "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": "6.8.3",
                  "versionStartIncluding": "6.8",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.9",
                  "versionStartIncluding": "6.8",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nclk: qcom: camcc-sc8280xp: fix terminating of frequency table arrays\n\nThe frequency table arrays are supposed to be terminated with an\nempty element. Add such entry to the end of the arrays where it\nis missing in order to avoid possible out-of-bound access when\nthe table is traversed by functions like qcom_find_freq() or\nqcom_find_freq_floor().\n\nOnly compile tested."
        }
      ],
      "metrics": [
        {
          "cvssV3_1": {
            "baseScore": 7.3,
            "baseSeverity": "HIGH",
            "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:L/A:H",
            "version": "3.1"
          },
          "scenarios": [
            {
              "lang": "en",
              "value": "AV:L - The vulnerable frequency-table walk is reached through the clock framework driven by local device interfaces \u2014 V4L2/media-controller ioctls on /dev/video* and /dev/v4l-subdev* that feed sensor link frequencies into clk_round_rate()/clk_set_rate() on camcc clocks, plus the clk debugfs rate interface. There is no network-facing path to a SoC clock controller.\nAC:L - Triggering the out-of-bounds walk is deterministic \u2014 any rate request exceeding the table\u0027s highest entry runs past the missing sentinel, with no race to win and no memory-layout precondition needed to cause the overrun itself. Only the exact contents read beyond the array depend on link layout, not the ability to trigger the bug.\nPR:L - An unprivileged local account with access to the camera device nodes (video group membership or a logind ACL on an active console session, the default on sc8280xp laptop distros) can drive format/link-frequency negotiation into the camcc rate requests. No root or CAP_SYS_ADMIN is required.\nUI:N - The attacker drives the entire sequence themselves by opening the camera device and negotiating a format or requesting a rate; no action by another user or administrator is needed.\nS:U - The out-of-bounds read, the bogus register programming, and any resulting crash are all confined to the kernel\u0027s own security authority on the affected SoC. No VM, IOMMU, or sandbox boundary is crossed.\nC:H - The traversal reads an unbounded distance past the end of the array through adjacent kernel .rodata, and the out-of-bounds freq value is propagated back to callers via req-\u003erate = f-\u003efreq in _freq_tbl_determine_rate() and into readable clock state, disclosing kernel image memory. This is not a strictly bounded few-byte read.\nI:L - The pre_div, m and n fields of the out-of-bounds entry are written without validation into the RCG M/N/D and CFG registers by __clk_rcg2_configure_mnd(), programming the camera clock tree with an out-of-table mux and divider configuration. This is genuine unintended modification of device state, but it yields no memory-write or control-flow primitive.\nA:H - The unterminated walk can run past the end of the mapped rodata region and fault, producing a kernel oops, and programming a garbage divider/source onto a live camera/CPAS clock can wedge the subsystem\u0027s bus accesses and hang the device. Per kernel scoring guidance any such crash or hang is High."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-05T11:28:43.000Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/93ff48729211dae55df5d216023be4528d29babb"
        },
        {
          "url": "https://git.kernel.org/stable/c/6a3d70f7802a98e6c28a74f997a264118b9f50cd"
        }
      ],
      "title": "clk: qcom: camcc-sc8280xp: fix terminating of frequency table arrays",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2024-26967",
    "datePublished": "2024-05-01T05:19:41.040Z",
    "dateReserved": "2024-02-19T14:20:24.202Z",
    "dateUpdated": "2026-08-05T11:28:43.000Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "vulnrichment": {
      "containers": "{\"adp\": [{\"title\": \"CVE Program Container\", \"references\": [{\"url\": \"https://git.kernel.org/stable/c/93ff48729211dae55df5d216023be4528d29babb\", \"tags\": [\"x_transferred\"]}, {\"url\": \"https://git.kernel.org/stable/c/6a3d70f7802a98e6c28a74f997a264118b9f50cd\", \"tags\": [\"x_transferred\"]}], \"providerMetadata\": {\"orgId\": \"af854a3a-2127-422b-91ae-364da2661108\", \"shortName\": \"CVE\", \"dateUpdated\": \"2024-08-02T00:21:05.625Z\"}}, {\"title\": \"CISA ADP Vulnrichment\", \"metrics\": [{\"other\": {\"type\": \"ssvc\", \"content\": {\"id\": \"CVE-2024-26967\", \"role\": \"CISA Coordinator\", \"options\": [{\"Exploitation\": \"none\"}, {\"Automatable\": \"no\"}, {\"Technical Impact\": \"partial\"}], \"version\": \"2.0.3\", \"timestamp\": \"2024-09-10T15:45:19.880928Z\"}}}], \"providerMetadata\": {\"orgId\": \"134c704f-9b21-4f2e-91b3-4a467353bcc0\", \"shortName\": \"CISA-ADP\", \"dateUpdated\": \"2024-09-11T12:42:18.535Z\"}}], \"cna\": {\"title\": \"clk: qcom: camcc-sc8280xp: fix terminating of frequency table arrays\", \"metrics\": [{\"cvssV3_1\": {\"version\": \"3.1\", \"baseScore\": 7.3, \"baseSeverity\": \"HIGH\", \"vectorString\": \"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:L/A:H\"}, \"scenarios\": [{\"lang\": \"en\", \"value\": \"AV:L - The vulnerable frequency-table walk is reached through the clock framework driven by local device interfaces \\u2014 V4L2/media-controller ioctls on /dev/video* and /dev/v4l-subdev* that feed sensor link frequencies into clk_round_rate()/clk_set_rate() on camcc clocks, plus the clk debugfs rate interface. There is no network-facing path to a SoC clock controller.\\nAC:L - Triggering the out-of-bounds walk is deterministic \\u2014 any rate request exceeding the table\u0027s highest entry runs past the missing sentinel, with no race to win and no memory-layout precondition needed to cause the overrun itself. Only the exact contents read beyond the array depend on link layout, not the ability to trigger the bug.\\nPR:L - An unprivileged local account with access to the camera device nodes (video group membership or a logind ACL on an active console session, the default on sc8280xp laptop distros) can drive format/link-frequency negotiation into the camcc rate requests. No root or CAP_SYS_ADMIN is required.\\nUI:N - The attacker drives the entire sequence themselves by opening the camera device and negotiating a format or requesting a rate; no action by another user or administrator is needed.\\nS:U - The out-of-bounds read, the bogus register programming, and any resulting crash are all confined to the kernel\u0027s own security authority on the affected SoC. No VM, IOMMU, or sandbox boundary is crossed.\\nC:H - The traversal reads an unbounded distance past the end of the array through adjacent kernel .rodata, and the out-of-bounds freq value is propagated back to callers via req-\u003erate = f-\u003efreq in _freq_tbl_determine_rate() and into readable clock state, disclosing kernel image memory. This is not a strictly bounded few-byte read.\\nI:L - The pre_div, m and n fields of the out-of-bounds entry are written without validation into the RCG M/N/D and CFG registers by __clk_rcg2_configure_mnd(), programming the camera clock tree with an out-of-table mux and divider configuration. This is genuine unintended modification of device state, but it yields no memory-write or control-flow primitive.\\nA:H - The unterminated walk can run past the end of the mapped rodata region and fault, producing a kernel oops, and programming a garbage divider/source onto a live camera/CPAS clock can wedge the subsystem\u0027s bus accesses and hang the device. Per kernel scoring guidance any such crash or hang is High.\"}]}], \"affected\": [{\"repo\": \"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\", \"vendor\": \"Linux\", \"product\": \"Linux\", \"versions\": [{\"status\": \"affected\", \"version\": \"ff93872a9c6168992ee41f2da9d9c3b8a6f8a8e5\", \"lessThan\": \"93ff48729211dae55df5d216023be4528d29babb\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"ff93872a9c6168992ee41f2da9d9c3b8a6f8a8e5\", \"lessThan\": \"6a3d70f7802a98e6c28a74f997a264118b9f50cd\", \"versionType\": \"git\"}], \"programFiles\": [\"drivers/clk/qcom/camcc-sc8280xp.c\"], \"defaultStatus\": \"unaffected\"}, {\"repo\": \"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\", \"vendor\": \"Linux\", \"product\": \"Linux\", \"versions\": [{\"status\": \"affected\", \"version\": \"6.8\"}, {\"status\": \"unaffected\", \"version\": \"0\", \"lessThan\": \"6.8\", \"versionType\": \"semver\"}, {\"status\": \"unaffected\", \"version\": \"6.8.3\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"6.8.*\"}, {\"status\": \"unaffected\", \"version\": \"6.9\", \"versionType\": \"original_commit_for_fix\", \"lessThanOrEqual\": \"*\"}], \"programFiles\": [\"drivers/clk/qcom/camcc-sc8280xp.c\"], \"defaultStatus\": \"affected\"}], \"references\": [{\"url\": \"https://git.kernel.org/stable/c/93ff48729211dae55df5d216023be4528d29babb\"}, {\"url\": \"https://git.kernel.org/stable/c/6a3d70f7802a98e6c28a74f997a264118b9f50cd\"}], \"x_generator\": {\"engine\": \"bippy-1.2.0\"}, \"descriptions\": [{\"lang\": \"en\", \"value\": \"In the Linux kernel, the following vulnerability has been resolved:\\n\\nclk: qcom: camcc-sc8280xp: fix terminating of frequency table arrays\\n\\nThe frequency table arrays are supposed to be terminated with an\\nempty element. Add such entry to the end of the arrays where it\\nis missing in order to avoid possible out-of-bound access when\\nthe table is traversed by functions like qcom_find_freq() or\\nqcom_find_freq_floor().\\n\\nOnly compile tested.\"}], \"cpeApplicability\": [{\"nodes\": [{\"negate\": false, \"cpeMatch\": [{\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"6.8.3\", \"versionStartIncluding\": \"6.8\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"6.9\", \"versionStartIncluding\": \"6.8\"}], \"operator\": \"OR\"}]}], \"providerMetadata\": {\"orgId\": \"416baaa9-dc9f-4396-8d5f-8c081fb06d67\", \"shortName\": \"Linux\", \"dateUpdated\": \"2026-08-05T11:28:43.000Z\"}}}",
      "cveMetadata": "{\"cveId\": \"CVE-2024-26967\", \"state\": \"PUBLISHED\", \"dateUpdated\": \"2026-08-05T11:28:43.000Z\", \"dateReserved\": \"2024-02-19T14:20:24.202Z\", \"assignerOrgId\": \"416baaa9-dc9f-4396-8d5f-8c081fb06d67\", \"datePublished\": \"2024-05-01T05:19:41.040Z\", \"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…