---
id: CVE-2026-99020
title: 'regulator: tps6594-regulator: Fix n_linear_ranges for TPS65224 BUCK2-4'
summary: |-
  In the Linux kernel, the following vulnerability has been resolved:

  regulator: tps6594-regulator: Fix n_linear_ranges for TPS65224 BUCK2-4

  The TPS65224 BUCK2, BUCK3 and BUCK4 descriptors pass 4 as
  n_linear_ranges, but tps65224_bucks_2_…
severity: none
vendor: Linux
product: Linux
affected:
  - >-
    Linux >= 54308f24ce510a3ba1bf2e0ebc8b9c8a577b3c3b <
    1ea151615a82fd94f25e38b2cc7eeac49112508b
  - >-
    Linux >= 00c826525fbae0230f6c3e9879e56d50267deb42 <
    66b7da589b2ce44a02b8387c6160e9254685f34f
  - >-
    Linux >= 00c826525fbae0230f6c3e9879e56d50267deb42 <
    f6fbe9c6b39968a7696b9badef4bc29331a6376a
  - >-
    Linux >= 00c826525fbae0230f6c3e9879e56d50267deb42 <
    f3423b56be12208a393274afb9a5e3d67fc58ce3
  - >-
    Linux >= 00c826525fbae0230f6c3e9879e56d50267deb42 <
    2f15518682c779b1014552cb2ccb4a2052f85f27
  - Linux >= 6.6.157 < 6.6.160
  - Linux 6.10
published: '2026-10-23'
updated: '2026-10-23'
sourceUpdated: '2026-10-23T12:20:57.162Z'
source: CVEORG
sourceUrl: 'https://www.cve.org/CVERecord?id=CVE-2026-99020'
references:
  - url: 'https://git.kernel.org/stable/c/1ea151615a82fd94f25e38b2cc7eeac49112508b'
  - url: 'https://git.kernel.org/stable/c/66b7da589b2ce44a02b8387c6160e9254685f34f'
  - url: 'https://git.kernel.org/stable/c/f6fbe9c6b39968a7696b9badef4bc29331a6376a'
  - url: 'https://git.kernel.org/stable/c/f3423b56be12208a393274afb9a5e3d67fc58ce3'
  - url: 'https://git.kernel.org/stable/c/2f15518682c779b1014552cb2ccb4a2052f85f27'
tags:
  - cve.org
ingestedAt: '2026-10-23T13:24:55.535Z'
---

## Overview

In the Linux kernel, the following vulnerability has been resolved:

regulator: tps6594-regulator: Fix n_linear_ranges for TPS65224 BUCK2-4

The TPS65224 BUCK2, BUCK3 and BUCK4 descriptors pass 4 as
n_linear_ranges, but tps65224_bucks_2_3_4_ranges[] only has two
entries, covering selectors 0x00-0x45.

The linear range helpers loop over n_linear_ranges entries, so any
lookup of a selector above 0x45 reads past the end of the array and
treats whatever follows it as two more ranges. This happens on the
normal registration path when the core checks the voltage constraints
against every selector. TPS652G1 uses the same descriptors and is
affected too.

Use ARRAY_SIZE() so the count always matches the table.

## Affected

- `Linux >= 54308f24ce510a3ba1bf2e0ebc8b9c8a577b3c3b < 1ea151615a82fd94f25e38b2cc7eeac49112508b`
- `Linux >= 00c826525fbae0230f6c3e9879e56d50267deb42 < 66b7da589b2ce44a02b8387c6160e9254685f34f`
- `Linux >= 00c826525fbae0230f6c3e9879e56d50267deb42 < f6fbe9c6b39968a7696b9badef4bc29331a6376a`
- `Linux >= 00c826525fbae0230f6c3e9879e56d50267deb42 < f3423b56be12208a393274afb9a5e3d67fc58ce3`
- `Linux >= 00c826525fbae0230f6c3e9879e56d50267deb42 < 2f15518682c779b1014552cb2ccb4a2052f85f27`
- `Linux >= 6.6.157 < 6.6.160`
- `Linux 6.10`

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
