{ "dataType": "CVE_RECORD", "dataVersion": "5.2", "cveMetadata": { "cveId": "CVE-2024-26968", "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "state": "PUBLISHED", "assignerShortName": "Linux", "dateReserved": "2024-02-19T14:20:24.202Z", "datePublished": "2024-05-01T05:19:45.880Z", "dateUpdated": "2026-08-05T11:28:44.079Z" }, "containers": { "cna": { "providerMetadata": { "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "shortName": "Linux", "dateUpdated": "2026-08-05T11:28:44.079Z" }, "descriptions": [ { "lang": "en", "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nclk: qcom: gcc-ipq9574: 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": { "version": "3.1", "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:L/A:H", "baseScore": 7.3, "baseSeverity": "HIGH" }, "scenarios": [ { "lang": "en", "value": "AV:L - The vulnerable code is a Qualcomm SoC clock-controller driver reached only through in-kernel clock-framework rate requests (clk_set_rate/determine_rate) originating from local device access such as the sdhci-msm/ICE consumer or clk debugfs. There is no network-facing consumer of the SDCC ICE core clock.\nAC:L - Once a rate above the table's 300 MHz maximum is requested, the missing sentinel causes the out-of-bounds walk deterministically — no race to win and no memory-layout grooming needed to leave the array. Every affected IPQ9574 kernel build in the vulnerable range behaves identically.\nPR:L - Reaching the clock-rate path requires only local access to the affected device/clock interfaces on the SoC, not real root in the init namespace. Choosing the higher-severity option where the reachable consumer's privilege gate is ambiguous.\nUI:N - The out-of-bounds traversal happens entirely inside the kernel clock framework when a rate is requested; no victim action, mount, or file open is needed.\nS:U - The out-of-bounds read, the mis-programmed clock registers, and any resulting fault all stay within the kernel's own security authority. No VM, IOMMU, or sandbox boundary is crossed.\nC:H - qcom_find_freq() reads past the end of the array with no bound — it walks adjacent kernel .rodata until it happens to hit a zero freq field, so the disclosure is not strictly bounded to a few bytes. The out-of-bounds bytes are then reflected back as the reported clock rate and programmed into hardware.\nI:L - The bogus entry's src/pre_div/m/n fields, built from out-of-bounds bytes, are written into the RCG configuration registers via clk_rcg2_configure(), mis-programming the SDCC inline-crypto-engine clock and risking corrupt transfers on the eMMC/SD path. The defect is read-only, so it yields no arbitrary-write or control-flow-hijack primitive.\nA:H - The mis-programmed clock makes update_config() time out and hit WARN(1), which panics under panic_on_warn, and leaves the storage/ICE block running at an invalid rate. The unbounded read walk can also fault if no zero word is found before the end of the mapped region, producing a kernel oops." } ] } ], "affected": [ { "product": "Linux", "vendor": "Linux", "defaultStatus": "unaffected", "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git", "programFiles": [ "drivers/clk/qcom/gcc-ipq9574.c" ], "versions": [ { "version": "d75b82cff48883b5e75abfd3930afa7a148ab440", "lessThan": "0204247cf3669b6021fb745c3b7f37ae392ab19c", "status": "affected", "versionType": "git" }, { "version": "d75b82cff48883b5e75abfd3930afa7a148ab440", "lessThan": "1723629fea8a4e75333196866e10d395463dca72", "status": "affected", "versionType": "git" }, { "version": "d75b82cff48883b5e75abfd3930afa7a148ab440", "lessThan": "604f2d7c46727c5e24fc7faddc980bc1cc0b1011", "status": "affected", "versionType": "git" }, { "version": "d75b82cff48883b5e75abfd3930afa7a148ab440", "lessThan": "bd2b6395671d823caa38d8e4d752de2448ae61e1", "status": "affected", "versionType": "git" } ] }, { "product": "Linux", "vendor": "Linux", "defaultStatus": "affected", "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git", "programFiles": [ "drivers/clk/qcom/gcc-ipq9574.c" ], "versions": [ { "version": "6.4", "status": "affected" }, { "version": "0", "lessThan": "6.4", "status": "unaffected", "versionType": "semver" }, { "version": "6.6.24", "lessThanOrEqual": "6.6.*", "status": "unaffected", "versionType": "semver" }, { "version": "6.7.12", "lessThanOrEqual": "6.7.*", "status": "unaffected", "versionType": "semver" }, { "version": "6.8.3", "lessThanOrEqual": "6.8.*", "status": "unaffected", "versionType": "semver" }, { "version": "6.9", "lessThanOrEqual": "*", "status": "unaffected", "versionType": "original_commit_for_fix" } ] } ], "cpeApplicability": [ { "nodes": [ { "operator": "OR", "negate": false, "cpeMatch": [ { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "6.4", "versionEndExcluding": "6.6.24" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "6.4", "versionEndExcluding": "6.7.12" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "6.4", "versionEndExcluding": "6.8.3" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "6.4", "versionEndExcluding": "6.9" } ] } ] } ], "references": [ { "url": "https://git.kernel.org/stable/c/0204247cf3669b6021fb745c3b7f37ae392ab19c" }, { "url": "https://git.kernel.org/stable/c/1723629fea8a4e75333196866e10d395463dca72" }, { "url": "https://git.kernel.org/stable/c/604f2d7c46727c5e24fc7faddc980bc1cc0b1011" }, { "url": "https://git.kernel.org/stable/c/bd2b6395671d823caa38d8e4d752de2448ae61e1" } ], "title": "clk: qcom: gcc-ipq9574: fix terminating of frequency table arrays", "x_generator": { "engine": "bippy-1.2.0" } }, "adp": [ { "metrics": [ { "other": { "type": "ssvc", "content": { "id": "CVE-2024-26968", "role": "CISA Coordinator", "options": [ { "Exploitation": "none" }, { "Automatable": "no" }, { "Technical Impact": "partial" } ], "version": "2.0.3", "timestamp": "2024-05-01T13:37:22.804753Z" } } } ], "title": "CISA ADP Vulnrichment", "providerMetadata": { "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0", "shortName": "CISA-ADP", "dateUpdated": "2024-07-05T17:22:44.263Z" } }, { "providerMetadata": { "orgId": "af854a3a-2127-422b-91ae-364da2661108", "shortName": "CVE", "dateUpdated": "2024-08-02T00:21:05.865Z" }, "title": "CVE Program Container", "references": [ { "url": "https://git.kernel.org/stable/c/0204247cf3669b6021fb745c3b7f37ae392ab19c", "tags": [ "x_transferred" ] }, { "url": "https://git.kernel.org/stable/c/1723629fea8a4e75333196866e10d395463dca72", "tags": [ "x_transferred" ] }, { "url": "https://git.kernel.org/stable/c/604f2d7c46727c5e24fc7faddc980bc1cc0b1011", "tags": [ "x_transferred" ] }, { "url": "https://git.kernel.org/stable/c/bd2b6395671d823caa38d8e4d752de2448ae61e1", "tags": [ "x_transferred" ] } ] } ] } }