{"id":"CVE-2026-98848","kind":"vulnerability","aliases":["CVE-2026-98848"],"related":[],"title":"Linux kernel: AC100 RTC clock setup trips bounds sanitizer during probe","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nrtc: ac100: Assign .num before accessing .hws\n\nCommit f316cdff8d67 (\"clk: Annotate struct clk_hw_onecell_data with\n__counted_by\") annotated the hws member of 'struct clk_hw_onecell_data'\nwith __counted_by, which informs the bounds sanitizer (UBSAN_BOUNDS)\nabout the number of elements in .hws[], so that it can warn when .hws[]\nis accessed out of bounds. As noted in that change, the __counted_by\nmember must be initialized with the number of elements before the first\narray access happens, otherwise there will be a warning from each access\nprior to the initialization because the number of elements is zero.\nThis occurs in ac100_rtc_register_clks() due to .num being assigned only\nafter every clkout clock has been stored in .hws[]. With\nCONFIG_UBSAN_BOUNDS and a compiler that implements __counted_by (GCC\n15.1+ or Clang 20.1+), this triggers an array-index-out-of-bounds report\nduring probe, and with CONFIG_UBSAN_TRAP the first store traps.\n\nInitialize .num with AC100_CLKOUT_NUM, the number of elements .hws[] was\nallocated with, right after the allocation. That is the value the loop\ncounter ends up at on the success path anyway, so the provider's\nbehaviour is unchanged.","summary":"In the Linux RTC driver for the AC100 chip, the clock provider's element count was set after the array was already written, so kernels built with UBSAN bounds checking report an out-of-bounds access and trap at boot. The sources describe a crash or warning during probe on those builds, not a way for an attacker to run code.","severity":"low","cvss":null,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["ac100","embedded","linux-kernel","other","rtc"],"not_affected_if":["default-config","no-ubsan-bounds","non-ac100-hardware"],"how_to_check":"- `uname -r` to get the running kernel version, then compare against the fixed stable kernel listed in the NVD entry\n- `grep -i ubsan /boot/config-$(uname -r)` to see whether CONFIG_UBSAN_BOUNDS or CONFIG_UBSAN_TRAP is enabled\n- unknown for the exact affected version range, as the sources do not say","fix":"- Update the Linux kernel to a stable release that includes the commit 'rtc: ac100: Assign .num before accessing .hws'\n- unknown for the exact fixed version number, as the sources do not say","status":"open","published_at":"2026-10-18T16:17:39+00:00","first_seen_at":"2026-10-23T21:57:17+00:00","triaged_at":"2026-10-25T05:13:05+00:00","updated_at":"2026-10-25T05:13:05+00:00","category":"other","confidence":0.6,"triage":{"at":"2026-10-25T05:13:05Z","model":"claude-haiku-5-5","output":{"fix":"- Update the Linux kernel to a stable release that includes the commit 'rtc: ac100: Assign .num before accessing .hws'\n- unknown for the exact fixed version number, as the sources do not say","reach":"local","title":"Linux kernel: AC100 RTC clock setup trips bounds sanitizer during probe","impact":"low","summary":"In the Linux RTC driver for the AC100 chip, the clock provider's element count was set after the array was already written, so kernels built with UBSAN bounds checking report an out-of-bounds access and trap at boot. The sources describe a crash or warning during probe on those builds, not a way for an attacker to run code.","category":"other","nicknames":[],"who_cares":["linux-kernel","rtc","ac100","embedded"],"confidence":0.6,"needs_auth":"no","worst_case":"Kernel traps during probe on debug builds; no code execution reported.","analyst_note":"Confirm affected kernel version range and fixed stable release from the NVD entry or the kernel git commit.","how_to_check":"- `uname -r` to get the running kernel version, then compare against the fixed stable kernel listed in the NVD entry\n- `grep -i ubsan /boot/config-$(uname -r)` to see whether CONFIG_UBSAN_BOUNDS or CONFIG_UBSAN_TRAP is enabled\n- unknown for the exact affected version range, as the sources do not say","needs_analyst":true,"not_affected_if":["no-ubsan-bounds","non-ac100-hardware","default-config"],"who_is_affected":"Only kernels built with CONFIG_UBSAN_BOUNDS and a compiler that supports __counted_by (GCC 15.1+ or Clang 20.1+) hit the warning or trap, and only on hardware that uses the AC100 RTC driver. Production kernels without UBSAN bounds checking are not affected by the reported behavior.","user_interaction":"no","needs_special_setup":"yes","severity_if_unknown":"low"},"cost_usd":0.000717,"input_tokens":3692,"output_tokens":696,"severity_before":"unknown"},"analyst_status":null,"analyst_note":null,"search":"'-2026':13A,16A '-98848':14A,17A '15.1':232C '20.1':235C 'ac100':3A,18B,32B,98C,201C,260C 'access':61B,102C,151C,176C,186C 'alloc':269C,274C 'alreadi':46B 'annot':107C,116C 'anyway':289C 'array':44B,175C,240C 'array-index-out-of-bound':239C 'assign':99C,209C 'attack':83B 'behaviour':294C 'boot':65B 'bound':8A,53B,60B,132C,135C,154C,223C,244C 'build':77B 'built':50B 'chang':159C 'check':54B 'chip':33B 'clang':234C 'clk':106C,109C,122C 'clkout':213C,261C 'clks':204C 'clock':5A,35B,214C 'code':86B 'commit':104C 'compil':226C 'config':221C,250C 'count':39B,114C,127C,161C,229C 'counter':281C 'crash':70B 'cve':12A,15A 'data':112C,125C 'describ':68B 'driver':29B 'due':205C 'element':38B,140C,171C,195C,266C 'embed':19B 'end':282C 'everi':212C 'f316cdff8d67':105C 'first':174C,254C 'follow':92C 'gcc':231C 'happen':177C 'hw':110C,123C 'hws':103C,118C,142C,149C,219C,267C 'implement':228C 'index':241C 'inform':130C 'initi':166C,190C,257C 'kernel':2A,22B,49B,90C 'linux':1A,21B,27B,89C 'linux-kernel':20B 'loop':280C 'member':119C,163C 'must':164C 'note':156C 'num':100C,207C,258C,262C 'number':138C,169C,193C,264C 'occur':199C 'onecel':111C,124C 'otherwis':178C 'out-of-bound':57B 'path':288C 'prior':187C 'probe':11A,74B,247C 'provid':36B,292C 'regist':203C 'report':55B,245C 'resolv':96C 'right':271C 'rtc':4A,24B,28B,97C,202C 'run':85B 'sanit':9A,133C 'set':41B 'setup':6A 'sourc':67B 'store':217C,255C 'struct':108C,121C 'success':287C 'trap':63B,252C,256C 'trigger':237C 'trip':7A 'ubsan':52B,134C,222C,251C 'unchang':296C 'valu':278C 'vulner':93C 'warn':72B,147C,183C 'way':80B 'written':47B 'zero':197C","nicknames":[],"mitigations":[],"who_affected":"Only kernels built with CONFIG_UBSAN_BOUNDS and a compiler that supports __counted_by (GCC 15.1+ or Clang 20.1+) hit the warning or trap, and only on hardware that uses the AC100 RTC driver. Production kernels without UBSAN bounds checking are not affected by the reported behavior.","tier":"C","verified":{},"analyst_revisit_at":null,"first_public_at":"2026-10-18T16:17:39+00:00","kev":null,"cvss_vector":null,"cvss_by":null,"poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-98848","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-98848","severity":null,"published_at":"2026-10-18T16:17:39+00:00","modified_at":"2026-10-21T13:21:49+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"}