---
id: CVE-2026-89436
title: 'platform/x86: panasonic-laptop: Fix sentinel write past pcc->sinf[]'
summary: |-
  In the Linux kernel, the following vulnerability has been resolved:

  platform/x86: panasonic-laptop: Fix sentinel write past pcc->sinf[]

  acpi_pcc_retrieve_biosdata() rejects SINF packages only when
  pcc->num_sifr is strictly less than hk…
severity: high
cvss: 7.8
cvssVector: 'CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H'
cvssSource: cna
cwe:
  - CWE-787
vendor: Linux
product: Linux
affected:
  - >-
    Linux >= a3d0dbd18ce908292607bb6cf37c978ece8a33d4 <
    a93df956ee4d903735b6d395362c839cb1dc07e3
  - >-
    Linux >= a3d0dbd18ce908292607bb6cf37c978ece8a33d4 <
    329f10d8be193bf36af124e00b9dd6644cd71724
  - Linux 7.2
published: '2026-09-11'
updated: '2026-10-19'
sourceUpdated: '2026-10-19T08:46:44.750Z'
source: CVEORG
sourceUrl: 'https://www.cve.org/CVERecord?id=CVE-2026-89436'
references:
  - url: 'https://git.kernel.org/stable/c/a93df956ee4d903735b6d395362c839cb1dc07e3'
  - url: 'https://git.kernel.org/stable/c/329f10d8be193bf36af124e00b9dd6644cd71724'
  - url: >-
      https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-89436.json
  - url: 'https://access.redhat.com/security/cve/CVE-2026-89436'
  - url: 'https://bugzilla.redhat.com/show_bug.cgi?id=2532194'
  - url: 'https://www.cve.org/CVERecord?id=CVE-2026-89436'
  - url: 'https://nvd.nist.gov/vuln/detail/CVE-2026-89436'
  - url: >-
      https://git.kernel.org/pub/scm/linux/security/vulns.git/plain/cve/published/2026/CVE-2026-89436.mbox
tags:
  - cve.org
  - csaf
  - vex
  - red-hat
  - score-dispute
epss: 0.00178
epssPercentile: 0.07364
scores:
  cna: 7.8
  vendor: 5.5
ingestedAt: '2026-09-14T15:23:07.475Z'
---

## Overview

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

platform/x86: panasonic-laptop: Fix sentinel write past pcc->sinf[]

acpi_pcc_retrieve_biosdata() rejects SINF packages only when
pcc->num_sifr is strictly less than hkey->package.count, then
unconditionally writes a trailing sentinel at
pcc->sinf[hkey->package.count]. But pcc->sinf[] is allocated with
exactly pcc->num_sifr elements (valid indices 0..num_sifr-1), so that
write needs num_sifr strictly greater than package.count to stay in
bounds -- num_sifr == package.count passes the existing check but
still overflows by one element.

This is exactly the case probe()'s existing num_sifr++ workaround
("Some DSDT-s have an off-by-one bug where the SINF package count is
one higher than the SQTY reported value") is written to accommodate:
when a DSDT's SINF package count equals SQTY+1, the workaround makes
num_sifr equal to package.count, which is precisely the boundary that
overflows here. Found via UBSan (array-index-out-of-bounds) on
hardware where HKEY.SQTY returns 37 and HKEY.SINF()'s package has 38
elements: num_sifr becomes 38 after the += 1 workaround, the loop
correctly fills indices 0..37, and the sentinel write then targets
index 38, one past the end -- a silent 4-byte heap overflow on kernels
without CONFIG_UBSAN.

Tightening the rejection check to num_sifr <= package.count would
avoid the overflow but breaks probe() entirely on exactly this
hardware, since num_sifr == package.count is the case the off-by-one
workaround exists to support. Nothing else in the driver reads this
sentinel value back, so simply skip the write when there is no room
for it instead.

## Affected

- `Linux >= a3d0dbd18ce908292607bb6cf37c978ece8a33d4 < a93df956ee4d903735b6d395362c839cb1dc07e3`
- `Linux >= a3d0dbd18ce908292607bb6cf37c978ece8a33d4 < 329f10d8be193bf36af124e00b9dd6644cd71724`
- `Linux 7.2`

## Remediation

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

## Vendor advisories

- **Red Hat VEX** · Moderate · updated 2026-09-14 · [vex](https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-89436.json)
