CVE-2026-89592

accel/rocket: fix NULL dereference and integer overflow in rocket_job_push()

Published Sep 11, 2026 CVSS 3.1 · 6.1 Medium EPSS < 1% KEV · Not listed
Description
In the Linux kernel, the following vulnerability has been resolved:

accel/rocket: fix NULL dereference and integer overflow in rocket_job_push()

rocket_job_push() allocates a temporary array to hold all input and
output GEM object pointers:

bos = kvmalloc_array(job->in_bo_count + job->out_bo_count,
sizeof(void *), GFP_KERNEL);
memcpy(bos, job->in_bos, job->in_bo_count * sizeof(void *));
memcpy(&bos[job->in_bo_count], job->out_bos, ...);

Two bugs exist:

1. Missing NULL check: if kvmalloc_array() fails, bos is NULL and
the subsequent memcpy() dereferences it, causing a kernel NULL
pointer dereference.

2. Integer overflow: in_bo_count and out_bo_count are both u32, set
directly from userspace-supplied in_bo_handle_count and
out_bo_handle_count with no prior validation. Their sum is computed
in u32 arithmetic and can wrap to a smaller value, causing the
allocation count passed to kvmalloc_array() to be smaller than
intended. Subsequent uses still operate on the original counts when
copying and locking objects, which may lead to out-of-bounds accesses
on the temporary array.

Fix by using check_add_overflow() to detect count overflow before the
allocation, and adding a NULL check on the allocation result.

Analysis

AI-generated

Technical impact

The Linux kernel’s accel/rocket subsystem contains a vulnerability where rocket_job_push() allocates an array of GEM object pointers without validating the allocation result or checking for integer overflow. A failed allocation results in a NULL pointer dereference, and an overflow of the summed input and output counts can cause the allocation size to be smaller than intended, leading to out‑of‑bounds access of the temporary array. These issues are classic denial‑of‑service scenarios that ultimately cause a kernel crash, and they are rooted in an invalid pointer dereference weakness identified as CWE‑476.

Affected Systems

All Linux kernel releases that include the accel/rocket subsystem prior to the fix commit a85402bff218f2b8f0d806e46c16c2f3d49cdda7 are affected. The vulnerability is part of the kernel core and is vendor‑agnostic.

Risk and Exploitability

The CVSS score of 6.1 reflects moderate severity. The EPSS score of < 1% indicates a very low probability of exploitation, and the flaw is not listed in the CISA KEV catalog, implying limited evidence of active exploitation. The likely attack vector is local, as the failure conditions depend on user‑supplied counts passed to rocket_job_push. An attacker with the ability to invoke rocket_job_push may induce a crash, providing a local denial‑of‑service.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Apply the kernel update that contains commit a85402bff218f2b8f0d806e46c16c2f3d49cdda7
  • If an immediate kernel update is not feasible, disable the accel/rocket subsystem or prevent applications from calling rocket_job_push
  • Validate or constrain the in_bo_handle_count and out_bo_handle_count before they are passed to the kernel, ensuring that the summed count cannot overflow a 32‑bit value

Generated by OpenCVE AI on September 15, 2026 at 21:32 UTC.

Tracking

Sign in to view the affected projects.

Advisories

Source ID Title
Ubuntu USN Ubuntu USN USN-9019-1 Linux kernel (Azure) vulnerabilities
Ubuntu USN Ubuntu USN USN-9020-1 Linux kernel vulnerabilities
History
Type Values Removed Values Added
Weaknesses CWE-476
References
Metrics threat_severity

None

cvssV3_1

{'score': 6.1, 'vector': 'CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:H'}

threat_severity

Moderate

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: accel/rocket: fix NULL dereference and integer overflow in rocket_job_push() rocket_job_push() allocates a temporary array to hold all input and output GEM object pointers: bos = kvmalloc_array(job->in_bo_count + job->out_bo_count, sizeof(void *), GFP_KERNEL); memcpy(bos, job->in_bos, job->in_bo_count * sizeof(void *)); memcpy(&bos[job->in_bo_count], job->out_bos, ...); Two bugs exist: 1. Missing NULL check: if kvmalloc_array() fails, bos is NULL and the subsequent memcpy() dereferences it, causing a kernel NULL pointer dereference. 2. Integer overflow: in_bo_count and out_bo_count are both u32, set directly from userspace-supplied in_bo_handle_count and out_bo_handle_count with no prior validation. Their sum is computed in u32 arithmetic and can wrap to a smaller value, causing the allocation count passed to kvmalloc_array() to be smaller than intended. Subsequent uses still operate on the original counts when copying and locking objects, which may lead to out-of-bounds accesses on the temporary array. Fix by using check_add_overflow() to detect count overflow before the allocation, and adding a NULL check on the allocation result.
Title accel/rocket: fix NULL dereference and integer overflow in rocket_job_push()
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References
Weaknesses

Sources

Status
PUBLISHED
Assigner
Linux
Published
Updated
Oct 19, 2026, 8:49 AM
Reserved
Sep 11, 2026, 7:38 PM
Status
Received
Published
Sep 11, 2026, 8:19 PM
Modified
Oct 19, 2026, 9:17 AM
Severity
Moderate
Public date
Sep 11, 2026, 7:44 PM