ZeroHour

CVE-2026-89443

large

Out-of-bounds read in Linux kernel ISST perf-mask ioctls via unvalidated level

CVSS 3.1
7.1 high
EPSS
Published
()
Modified
AI analysis

The Linux kernel's Intel Speed Select Technology (ISST) interface driver accepts a user-supplied 'level' value in the isst_if_get_perf_level_mask() and isst_if_get_base_freq_mask() ioctls and uses it directly as an index into the per-level perf_levels[] offset table, without the bounds checks that the adjacent level-info helpers already perform. A local attacker with low privileges triggers the flaw by issuing these ioctls with an out-of-range (or, for the perf-level mask, disabled) SST-PP level. The result is an out-of-bounds kernel read, yielding information disclosure and potential denial of service on the affected machine (CVSS 3.1: 7.1, local vector, C:H/I:N/A:H). Affected systems are those running a kernel with the unfixed ISST interface code active on Intel SST-PP-capable hardware, chiefly Xeon Scalable servers. No public proof of concept or in-the-wild exploitation is known, and the issue is not on the CISA KEV list.

What to do: Update to a kernel that includes the upstream ISST fix (the patch adds level bounds checks to both mask ioctls and rejects disabled SST-PP levels); on distribution-maintained kernels, apply the backported fix when it ships. On servers that do not use Intel Speed Select Technology, consider blacklisting or not loading the intel_speed_select_if / isst_if modules. As defense in depth, confirm that access to the ISST interface device node is limited to trusted accounts on multi-user Xeon hosts.

Affected
Linux kernel (platform/x86 ISST interface driver)
Estimated exposure
largeplausibly ~10k-100k practically exploitable multi-user hosts, out of a much larger pool of Intel Xeon-based Linux servers that may load the ISST driver — Estimated from Intel Xeon Scalable's large share of the Linux server installed base and the driver's inclusion in mainstream distro kernels, then discounted heavily for the local low-privileged-access requirement and the fact that guests…

Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.

Description

In the Linux kernel, the following vulnerability has been resolved: platform/x86: ISST: Validate level in perf mask ioctls isst_if_get_perf_level_mask() and isst_if_get_base_freq_mask() use the user-provided level as an index into perf_levels[] via _read_pp_level_info() and _read_bf_level_info(), but neither helper validates it first. The adjacent level-info helpers reject levels above max_level before reading the same per-level register block. Add the same bounds checks to the mask helpers, and reject disabled SST-PP levels in isst_if_get_perf_level_mask() to match isst_if_get_perf_level_info(). This prevents out-of-bounds reads from the per-level offset table on invalid ioctl input.

Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H

In the news

No ingested article mentions this CVE yet.