{
    "dataType": "CVE_RECORD",
    "dataVersion": "5.2",
    "cveMetadata": {
        "cveId": "CVE-2024-26971",
        "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "state": "PUBLISHED",
        "assignerShortName": "Linux",
        "dateReserved": "2024-02-19T14:20:24.202Z",
        "datePublished": "2024-05-01T05:19:59.773Z",
        "dateUpdated": "2026-08-05T11:28:46.226Z"
    },
    "containers": {
        "cna": {
            "providerMetadata": {
                "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
                "shortName": "Linux",
                "dateUpdated": "2026-08-05T11:28:46.226Z"
            },
            "descriptions": [
                {
                    "lang": "en",
                    "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nclk: qcom: gcc-ipq5018: 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()."
                }
            ],
            "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 an on-SoC global clock controller driver reached only through in-kernel `clk_set_rate()`/`clk_round_rate()` calls on the local device; no network protocol, packet, or remote peer data reaches the frequency-table walk.\nAC:L - The over-read is fully deterministic — any rate request exceeding the table's largest entry runs the loop off the array end with no race, timing window, or memory-layout precondition involved.\nPR:L - No real-root capability check guards the rate-setting path; the affected RCGs are re-programmed by consumer drivers on paths an unprivileged local user can provoke (device-node open triggering runtime-PM resume on the USB/PCIe controllers, QPIC/NAND I/O), so basic local user privileges are sufficient rather than init-namespace root.\nUI:N - The out-of-bounds walk occurs entirely within kernel clock-rate handling during normal driver operation; no victim must open a file, mount a filesystem, or take any other action.\nS:U - The over-read and its consequences stay within the kernel's own security authority — there is no VM, IOMMU, or sandbox boundary crossed.\nC:H - The loop performs an unbounded out-of-bounds read of kernel `.rodata` past the array, and the read `freq` field is propagated back as the clock rate visible through the clk debugfs/round-rate interfaces, so out-of-bounds kernel memory — potentially including relocated pointers usable to defeat KASLR — is disclosed; the read is not bounded to a few bytes.\nI:L - There is no out-of-bounds write and no kernel memory corruption — `src` is validated by `qcom_find_src_index()` and `m`/`n`/`pre_div` are masked before reaching hardware — but out-of-bounds-derived values are still programmed into the SoC's RCG clock-control registers, mis-configuring the PCIe/USB aux, QPIC NAND I/O-macro, or UBI32 core clocks and thereby corrupting data clocked through the NAND interface.\nA:H - With `IPQ_GCC_5018` built as a module the tables sit in vmalloc'd module `.rodata`, so the runaway walk can hit an unmapped guard region and oops the kernel, and programming garbage divider/source values into the PCIe, USB, QPIC, or UBI32 clock RCGs can hang the affected peripheral or the SoC outright."
                        }
                    ]
                }
            ],
            "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-ipq5018.c"
                    ],
                    "versions": [
                        {
                            "version": "e3fdbef1bab8e372981c8cc4d8febbaa76c490b0",
                            "lessThan": "b0cf3d200e8a72b6d28e6e088c062b4a98cb5eaf",
                            "status": "affected",
                            "versionType": "git"
                        },
                        {
                            "version": "e3fdbef1bab8e372981c8cc4d8febbaa76c490b0",
                            "lessThan": "c8f4bef0667947b826848db1c45a645f751357c1",
                            "status": "affected",
                            "versionType": "git"
                        },
                        {
                            "version": "e3fdbef1bab8e372981c8cc4d8febbaa76c490b0",
                            "lessThan": "50c3acd460551cdf9d8ac6fe0c04f2de0e8e0872",
                            "status": "affected",
                            "versionType": "git"
                        },
                        {
                            "version": "e3fdbef1bab8e372981c8cc4d8febbaa76c490b0",
                            "lessThan": "90ad946fff70f312b8d23226afc38c13ddd88c4b",
                            "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-ipq5018.c"
                    ],
                    "versions": [
                        {
                            "version": "6.6",
                            "status": "affected"
                        },
                        {
                            "version": "0",
                            "lessThan": "6.6",
                            "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.6",
                                    "versionEndExcluding": "6.6.24"
                                },
                                {
                                    "vulnerable": true,
                                    "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                                    "versionStartIncluding": "6.6",
                                    "versionEndExcluding": "6.7.12"
                                },
                                {
                                    "vulnerable": true,
                                    "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                                    "versionStartIncluding": "6.6",
                                    "versionEndExcluding": "6.8.3"
                                },
                                {
                                    "vulnerable": true,
                                    "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                                    "versionStartIncluding": "6.6",
                                    "versionEndExcluding": "6.9"
                                }
                            ]
                        }
                    ]
                }
            ],
            "references": [
                {
                    "url": "https://git.kernel.org/stable/c/b0cf3d200e8a72b6d28e6e088c062b4a98cb5eaf"
                },
                {
                    "url": "https://git.kernel.org/stable/c/c8f4bef0667947b826848db1c45a645f751357c1"
                },
                {
                    "url": "https://git.kernel.org/stable/c/50c3acd460551cdf9d8ac6fe0c04f2de0e8e0872"
                },
                {
                    "url": "https://git.kernel.org/stable/c/90ad946fff70f312b8d23226afc38c13ddd88c4b"
                }
            ],
            "title": "clk: qcom: gcc-ipq5018: fix terminating of frequency table arrays",
            "x_generator": {
                "engine": "bippy-1.2.0"
            }
        },
        "adp": [
            {
                "metrics": [
                    {
                        "other": {
                            "type": "ssvc",
                            "content": {
                                "id": "CVE-2024-26971",
                                "role": "CISA Coordinator",
                                "options": [
                                    {
                                        "Exploitation": "none"
                                    },
                                    {
                                        "Automatable": "no"
                                    },
                                    {
                                        "Technical Impact": "partial"
                                    }
                                ],
                                "version": "2.0.3",
                                "timestamp": "2024-05-01T13:37:17.172214Z"
                            }
                        }
                    }
                ],
                "title": "CISA ADP Vulnrichment",
                "providerMetadata": {
                    "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
                    "shortName": "CISA-ADP",
                    "dateUpdated": "2024-07-05T17:22:44.592Z"
                }
            },
            {
                "providerMetadata": {
                    "orgId": "af854a3a-2127-422b-91ae-364da2661108",
                    "shortName": "CVE",
                    "dateUpdated": "2024-08-02T00:21:05.667Z"
                },
                "title": "CVE Program Container",
                "references": [
                    {
                        "url": "https://git.kernel.org/stable/c/b0cf3d200e8a72b6d28e6e088c062b4a98cb5eaf",
                        "tags": [
                            "x_transferred"
                        ]
                    },
                    {
                        "url": "https://git.kernel.org/stable/c/c8f4bef0667947b826848db1c45a645f751357c1",
                        "tags": [
                            "x_transferred"
                        ]
                    },
                    {
                        "url": "https://git.kernel.org/stable/c/50c3acd460551cdf9d8ac6fe0c04f2de0e8e0872",
                        "tags": [
                            "x_transferred"
                        ]
                    },
                    {
                        "url": "https://git.kernel.org/stable/c/90ad946fff70f312b8d23226afc38c13ddd88c4b",
                        "tags": [
                            "x_transferred"
                        ]
                    }
                ]
            }
        ]
    }
}