CVE Catalog

CVE-2026-90130

Unknown
Published: Translated: NVD NIST

Summary

In the Linux kernel, vdpasim_create() leaves vdpasim->worker as an ERR_PTR when kthread_run_worker() fails. The error path drops the device reference, and vdpasim_free() unconditionally passes the worker pointer to kthread_destroy_worker(), dereferencing the ERR_PTR and triggering a general protection fault.

Risk Assessment

A worker creation failure in vdpa_sim can lead to a general protection fault and kernel crash, representing a denial-of-service (DoS) vector for the system.

Recommendation

Update the Linux kernel to a version containing the fix that stores the worker error, clears the pointer, and only cleans up the worker when it was successfully initialized. Also guard the release path against partially initialized objects.

Other vulnerabilities in Linux kernel

See all
Original NVD description (English source)

In the Linux kernel, the following vulnerability has been resolved: vdpa_sim: fix cleanup after worker creation failure vdpasim_create() leaves vdpasim->worker as an ERR_PTR when kthread_run_worker() fails. The error path then drops the device reference, which releases the partially initialized simulator. vdpasim_free() unconditionally passes the worker pointer to kthread_destroy_worker(), so the ERR_PTR is dereferenced and can trigger a general protection fault. Store the worker error, clear the pointer, and only clean up the worker when it was successfully initialized. Also make the release path tolerate partially initialized objects by guarding virtqueue and IOTLB cleanup, since the same release path can be reached from other initialization failures. I found this bug myself, though the patch was written with AI assistance.

Vulnerability data from NVD (NIST) · CISA KEV · EPSS