{"id":"CVE-2026-98825","title":"rtc: mpfs: fix unchecked devm_clk_get() error pointer in probe()","summary":"In the Linux kernel, the following vulnerability has been resolved:\n\nrtc: mpfs: fix unchecked devm_clk_get() error pointer in probe()\n\ndevm_clk_get(&pdev->dev, \"rtcref\")'s return value was passed straight\ninto clk_get_rate() without chec…","severity":"none","vendor":"Linux","product":"Linux","affected":["Linux >= 0b31d703598dc1993867597bbd45e87d824fc427 < 74dc7c52946e3d47c40edd0875adb7cc15937066","Linux >= 0b31d703598dc1993867597bbd45e87d824fc427 < cfd70c9b19846c524f2b6195a7484bdf22071ccf","Linux >= 0b31d703598dc1993867597bbd45e87d824fc427 < 8a03f8422fa08eed335c51bccb612a3d81739ff2","Linux >= 0b31d703598dc1993867597bbd45e87d824fc427 < ac41b05d15db3134e839148290d67415ee0bdb58","Linux 6.0"],"published":"2026-10-18","updated":"2026-10-18","sourceUpdated":"2026-10-18T15:49:17.605Z","source":"CVEORG","sourceUrl":"https://www.cve.org/CVERecord?id=CVE-2026-98825","references":[{"url":"https://git.kernel.org/stable/c/74dc7c52946e3d47c40edd0875adb7cc15937066"},{"url":"https://git.kernel.org/stable/c/cfd70c9b19846c524f2b6195a7484bdf22071ccf"},{"url":"https://git.kernel.org/stable/c/8a03f8422fa08eed335c51bccb612a3d81739ff2"},{"url":"https://git.kernel.org/stable/c/ac41b05d15db3134e839148290d67415ee0bdb58"}],"tags":["cve.org"],"ingestedAt":"2026-10-18T16:47:32.473Z","slug":"CVE-2026-98825","body":"## Overview\n\nIn the Linux kernel, the following vulnerability has been resolved:\n\nrtc: mpfs: fix unchecked devm_clk_get() error pointer in probe()\n\ndevm_clk_get(&pdev->dev, \"rtcref\")'s return value was passed straight\ninto clk_get_rate() without checking it for an error first, unlike the\n\"rtc\" clock a few lines above which is correctly checked with\nIS_ERR(). clk_get_rate() only guards against a NULL clk, not an error\npointer:\n\n\tif (!clk)\n\t\treturn 0;\n\t...\n\trate = clk_core_get_rate_recalc(clk->core);\n\nso if devm_clk_get() ever returns an error pointer here (for example\nERR_PTR(-EPROBE_DEFER), which is the normal, expected outcome if the\nclkcfg clock-provider this RTC depends on has not registered its\nclocks yet by the time this driver probes), clk_get_rate() dereferences\nthat error pointer instead of returning 0, crashing instead of letting\nprobe defer.\n\nCapture the clock in the existing 'clk' local and check it with\nIS_ERR() before calling clk_get_rate(), matching the handling already\nused for the \"rtc\" clock in this same function.\n\n## Affected\n\n- `Linux >= 0b31d703598dc1993867597bbd45e87d824fc427 < 74dc7c52946e3d47c40edd0875adb7cc15937066`\n- `Linux >= 0b31d703598dc1993867597bbd45e87d824fc427 < cfd70c9b19846c524f2b6195a7484bdf22071ccf`\n- `Linux >= 0b31d703598dc1993867597bbd45e87d824fc427 < 8a03f8422fa08eed335c51bccb612a3d81739ff2`\n- `Linux >= 0b31d703598dc1993867597bbd45e87d824fc427 < ac41b05d15db3134e839148290d67415ee0bdb58`\n- `Linux 6.0`\n\n## Remediation\n\nRefer to the linked advisories for vendor-supplied fixes and affected version ranges.","depth":"sunlit","depthScore":3,"depthScoreParts":{"impact":2.8,"likelihood":0,"exploitation":0,"ransomware":0},"changes":[]}