{"id":"CVE-2026-98825","kind":"vulnerability","aliases":["CVE-2026-98825"],"related":[],"title":"Linux kernel: RTC driver crashes on unchecked clock error during probe","description":"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 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.","summary":"The Linux kernel's mpfs RTC driver passed an unchecked clock pointer into clk_get_rate(), so an error return from devm_clk_get() (such as a deferred probe) could be dereferenced and crash the kernel. The fix checks the pointer with IS_ERR() before use, matching the handling of the neighbouring clock.","severity":"low","cvss":null,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["embedded","linux-kernel","other","polarfire-soc"],"not_affected_if":["other-hardware"],"how_to_check":null,"fix":null,"status":"open","published_at":"2026-10-18T16:17:36+00:00","first_seen_at":"2026-10-23T21:57:17+00:00","triaged_at":"2026-10-25T05:14:36+00:00","updated_at":"2026-10-25T05:14:36+00:00","category":"other","confidence":0.6,"triage":{"at":"2026-10-25T05:14:36Z","model":"claude-haiku-5-5","output":{"fix":"unknown","reach":"local","title":"Linux kernel: RTC driver crashes on unchecked clock error during probe","impact":"low","summary":"The Linux kernel's mpfs RTC driver passed an unchecked clock pointer into clk_get_rate(), so an error return from devm_clk_get() (such as a deferred probe) could be dereferenced and crash the kernel. The fix checks the pointer with IS_ERR() before use, matching the handling of the neighbouring clock.","category":"other","nicknames":[],"who_cares":["linux-kernel","polarfire-soc","embedded"],"confidence":0.6,"needs_auth":"unknown","worst_case":"Kernel crash during boot-time driver probe on affected hardware","analyst_note":"","how_to_check":"unknown","needs_analyst":false,"not_affected_if":["other-hardware"],"who_is_affected":"Systems running a Linux kernel with the MicroChip PolarFire SoC (mpfs) RTC driver, where the clkcfg clock provider may register late so the RTC probe defers. Hosts on other hardware, or kernels without this driver, are not affected.","user_interaction":"no","needs_special_setup":"unknown","severity_if_unknown":"low"},"cost_usd":0.000579,"input_tokens":3625,"output_tokens":433,"severity_before":"unknown"},"analyst_status":null,"analyst_note":null,"search":"'-2026':13A,16A '-98825':14A,17A '0':154C,218C 'alreadi':247C 'call':240C 'captur':225C 'check':64B,117C,134C,234C 'clk':39B,48B,94C,101C,113C,138C,146C,152C,156C,161C,166C,208C,231C,241C 'clkcfg':188C 'clock':8A,36B,78B,126C,190C,200C,227C,252C 'clock-provid':189C 'core':157C,162C 'correct':133C 'could':55B 'crash':5A,59B,219C 'cve':12A,15A 'defer':53B,179C,224C 'depend':194C 'derefer':211C 'dereferenc':57B 'dev':104C 'devm':47B,93C,100C,165C 'driver':4A,32B,206C 'embed':18B 'eprob':178C 'err':69B,137C,176C,238C 'error':9A,44B,96C,121C,149C,171C,213C 'ever':168C 'exampl':175C 'exist':230C 'expect':184C 'first':122C 'fix':63B,91C 'follow':84C 'function':256C 'get':40B,49B,95C,102C,114C,139C,158C,167C,209C,242C 'guard':142C 'handl':74B,246C 'instead':215C,220C 'kernel':2A,21B,28B,61B,82C 'let':222C 'line':129C 'linux':1A,20B,27B,81C 'linux-kernel':19B 'local':232C 'match':72B,244C 'mpfs':30B,90C 'neighbour':77B 'normal':183C 'null':145C 'outcom':185C 'pass':33B,110C 'pdev':103C 'pointer':37B,66B,97C,150C,172C,214C 'polarfir':24B 'polarfire-soc':23B 'probe':11A,54B,99C,207C,223C 'provid':191C 'ptr':177C 'rate':41B,115C,140C,155C,159C,210C,243C 'recalc':160C 'regist':198C 'resolv':88C 'return':45B,107C,153C,169C,217C 'rtc':3A,31B,89C,125C,193C,251C 'rtcref':105C 'soc':25B 'straight':111C 'time':204C 'uncheck':7A,35B,92C 'unlik':123C 'use':71B,248C 'valu':108C 'vulner':85C 'without':116C 'yet':201C","nicknames":[],"mitigations":[],"who_affected":"Systems running a Linux kernel with the MicroChip PolarFire SoC (mpfs) RTC driver, where the clkcfg clock provider may register late so the RTC probe defers. Hosts on other hardware, or kernels without this driver, are not affected.","tier":"C","verified":{},"analyst_revisit_at":null,"first_public_at":"2026-10-18T16:17:36+00:00","kev":null,"cvss_vector":null,"cvss_by":null,"poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-98825","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-98825","severity":null,"published_at":"2026-10-18T16:17:36+00:00","modified_at":"2026-10-21T13:21:48+00:00","first_seen_at":"2026-10-23T21:57:17+00:00","fetched_at":"2026-10-23T22:28:56+00:00","note":null}],"documents":[],"notice":"Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai"}