{"id":"CVE-2026-99020","kind":"vulnerability","aliases":["CVE-2026-99020"],"related":[],"title":"Linux kernel: TPS65224 regulator driver reads past its voltage table","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nregulator: tps6594-regulator: Fix n_linear_ranges for TPS65224 BUCK2-4\n\nThe TPS65224 BUCK2, BUCK3 and BUCK4 descriptors pass 4 as\nn_linear_ranges, but tps65224_bucks_2_3_4_ranges[] only has two\nentries, covering selectors 0x00-0x45.\n\nThe linear range helpers loop over n_linear_ranges entries, so any\nlookup of a selector above 0x45 reads past the end of the array and\ntreats whatever follows it as two more ranges. This happens on the\nnormal registration path when the core checks the voltage constraints\nagainst every selector. TPS652G1 uses the same descriptors and is\naffected too.\n\nUse ARRAY_SIZE() so the count always matches the table.","summary":"The Linux kernel's TPS6594 regulator driver for TPS65224 BUCK2-4 (and TPS652G1) declares four linear ranges while its table holds only two, so lookups for high selectors read beyond the array. The sources describe an out-of-bounds read during regulator registration; they do not describe code execution.","severity":"low","cvss":null,"epss":0.00209,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["embedded","linux-kernel","power-management","runtime"],"not_affected_if":["no-tps65224-hardware","no-tps652g1-hardware"],"how_to_check":"- Check the running kernel version with `uname -r` and whether the TPS65224 or TPS652G1 regulator driver is loaded with `lsmod | grep tps65`\n- unknown","fix":"- Update the Linux kernel to a release that includes the upstream commit fixing n_linear_ranges for TPS65224 BUCK2-4\n- unknown","status":"open","published_at":"2026-10-23T13:17:24+00:00","first_seen_at":"2026-10-23T21:57:33+00:00","triaged_at":"2026-10-25T04:55:38+00:00","updated_at":"2026-10-25T12:38:50+00:00","category":"runtime","confidence":0.6,"triage":{"at":"2026-10-25T04:55:38Z","model":"claude-haiku-5-5","output":{"fix":"- Update the Linux kernel to a release that includes the upstream commit fixing n_linear_ranges for TPS65224 BUCK2-4\n- unknown","reach":"local","title":"Linux kernel: TPS65224 regulator driver reads past its voltage table","impact":"low","summary":"The Linux kernel's TPS6594 regulator driver for TPS65224 BUCK2-4 (and TPS652G1) declares four linear ranges while its table holds only two, so lookups for high selectors read beyond the array. The sources describe an out-of-bounds read during regulator registration; they do not describe code execution.","category":"runtime","nicknames":[],"who_cares":["linux-kernel","embedded","power-management"],"confidence":0.6,"needs_auth":"unknown","worst_case":"kernel reads out-of-bounds memory during regulator registration","analyst_note":"","how_to_check":"- Check the running kernel version with `uname -r` and whether the TPS65224 or TPS652G1 regulator driver is loaded with `lsmod | grep tps65`\n- unknown","needs_analyst":false,"not_affected_if":["no-tps65224-hardware","no-tps652g1-hardware"],"who_is_affected":"Only systems running a Linux kernel with the TPS6594 regulator driver for TPS65224 or TPS652G1 power management chips, typically embedded or hardware-specific boards. Ordinary servers and desktops without these chips are unlikely to load the driver and can skip it. The sources do not give exact affected kernel versions.","user_interaction":"no","needs_special_setup":"yes","severity_if_unknown":"low"},"cost_usd":0.000634,"input_tokens":3498,"output_tokens":569,"severity_before":"unknown"},"analyst_status":null,"analyst_note":null,"search":"'-2026':12A,15A '-4':35B,96C '-99020':13A,16A '0x00':124C '0x00-0x45':123C '0x45':125C,143C '2':113C '3':114C '4':105C,115C 'affect':184C 'alway':192C 'array':56B,150C,187C 'beyond':54B 'bound':64B 'buck':112C 'buck2':34B,95C,99C 'buck3':100C 'buck4':102C 'check':170C 'code':73B 'constraint':173C 'core':169C 'count':191C 'cover':121C 'cve':11A,14A 'declar':38B 'describ':59B,72B 'descriptor':103C,181C 'driver':5A,31B 'embed':17B 'end':147C 'entri':120C,135C 'everi':175C 'execut':74B 'fix':89C 'follow':80C,154C 'four':39B 'happen':161C 'helper':129C 'high':51B 'hold':45B 'kernel':2A,20B,27B,78C 'linear':40B,91C,108C,127C,133C 'linux':1A,19B,26B,77C 'linux-kernel':18B 'lookup':49B,138C 'loop':130C 'manag':23B 'match':193C 'n':90C,107C,132C 'normal':164C 'out-of-bound':61B 'pass':104C 'past':7A,145C 'path':166C 'power':22B 'power-manag':21B 'rang':41B,92C,109C,116C,128C,134C,159C 'read':6A,53B,65B,144C 'registr':68B,165C 'regul':4A,30B,67B,85C,88C 'resolv':84C 'runtim':24B 'selector':52B,122C,141C,176C 'size':188C 'sourc':58B 'tabl':10A,44B,195C 'tps65224':3A,33B,94C,98C,111C 'tps652g1':37B,177C 'tps6594':29B,87C 'tps6594-regulator':86C 'treat':152C 'two':47B,119C,157C 'use':178C,186C 'voltag':9A,172C 'vulner':81C 'whatev':153C","nicknames":[],"mitigations":[],"who_affected":"Only systems running a Linux kernel with the TPS6594 regulator driver for TPS65224 or TPS652G1 power management chips, typically embedded or hardware-specific boards. Ordinary servers and desktops without these chips are unlikely to load the driver and can skip it. The sources do not give exact affected kernel versions.","tier":"C","verified":{},"analyst_revisit_at":null,"first_public_at":"2026-10-23T13:17:24+00:00","kev":null,"cvss_vector":null,"cvss_by":null,"poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-99020","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-99020","severity":null,"published_at":"2026-10-23T13:17:24+00:00","modified_at":"2026-10-23T13:17:24+00:00","first_seen_at":"2026-10-23T21:57:33+00:00","fetched_at":"2026-10-23T22:29:03+00:00","note":null},{"source":"epss","external_id":"CVE-2026-99020","url":"https://api.first.org/data/v1/epss?cve=CVE-2026-99020","severity":null,"published_at":null,"modified_at":null,"first_seen_at":"2026-10-25T12:38:50+00:00","fetched_at":"2026-10-25T12:38:50+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"}