Linux kernel vulnerabilities
8,193 known CVE vulnerabilities in Linux kernel, translated and rated.
- CVE-2026-93140Unknown
A vulnerability exists in the Linux kernel's UDF filesystem. When an I/O error occurs while writing the Logical Volume Integrity Descriptor (LVID) buffer, the block layer clears the BH_Uptodate flag even though the in-memory LVID data remains valid. If the filesystem is later remounted read-write or synced, udf_open_lvid() and udf_sync_fs() modify the buffer and call mark_buffer_dirty(), triggering a spurious WARN_ON_ONCE(!buffer_uptodate(bh)) warning.
- CVE-2026-93139Unknown
In the Linux kernel's drm/amdgpu/mes driver, the loop initializing the hung_queue_db_array iterated only AMDGPU_MAX_MES_PIPES times, leaving entries uninitialized for multi-XCC GPUs. This can lead to null pointer dereferences when accessing arrays indexed by XCC ID >= 2. The fix extends the loop to cover all XCCs.
- CVE-2026-93136Unknown
In the Linux kernel's bus: mhi: ep driver, mhi_ep_create_device() takes device references for UL and DL channels. If dev_set_name() or device_add() fails, the error path drops only one reference, causing a reference leak and leaving channels associated with an unregistered device. The fix routes both failures through a common unwind path.
- CVE-2026-93135Unknown
In the Linux kernel, when an architecture implements bpf_jit_inlines_helper_call(), the verifier skips rewriting the helper call offset. If JIT is disabled or JIT compilation fails, the program falls back to the interpreter, causing a jump to an invalid address and kernel panic. The fix sets prog->jit_required = 1 to reject such programs when JIT is unavailable.
- CVE-2026-93134Unknown
In the Linux kernel's printk, during legacy printing a handover to another context can occur, releasing the console SRCU read lock and potentially invalidating the console struct pointer. console_flush_one_record() did not check for this after emission, leading to possible use-after-free. The fix moves further @con usage after the handover check.
- CVE-2026-93133Unknown
In the Linux kernel's riscv_acpi_add_prt_dep(), the acpi_get_handle() call can fail, leaving link_handle uninitialized. The fix checks the return status of acpi_get_handle() and skips the entry if it fails.
- CVE-2026-93132Unknown
In the Linux kernel's riscv_acpi_add_prt_dep(), the loop handles error conditions incorrectly by continuing without updating the entry pointer, skipping entries. The fix rewrites the loop as a for loop with correct continuation and uses helper functions.
- CVE-2026-93131Unknown
In the Linux kernel's platform/x86: dell-privacy driver, there is a race condition when accessing priv->features_present. Access must be done with the list mutex held, otherwise priv can be freed at any moment. The fix ensures the mutex is held during access.
- CVE-2026-93130Unknown
In the Linux kernel's platform/x86: dell-wmi-base driver, there is a resource leak on module load failure. The fix ensures proper cleanup of the SMBIOS request and the privacy driver when the module load fails.
- CVE-2026-93129Unknown
In the Linux kernel, the platform/x86 dell-wmi-base module has an indexing bug when handling the ultra performance key. The event data passed to dell_wmi_process_key() is already parsed, so using the wrong index to access the first data field can cause a buffer overread.
- CVE-2026-93128Unknown
In the Linux kernel, the platform/x86 lg-laptop module mishandles LED resources. The event notification callback may access kbd_backlight even when it was not successfully registered with the LED subsystem, and acpi_remove() unregisters LED devices unconditionally.
- CVE-2026-93126Unknown
In the Linux kernel, the remoteproc qcom_q6v5_adsp driver has a device node reference leak. The adsp_map_carveout function calls of_parse_phandle_with_args() but does not release the node reference via of_node_put().
- CVE-2026-93124Unknown
In the Linux kernel, the platform/x86 asus-wireless module's asus_wireless_probe() returns success when acpi_match_acpi_device() finds no match. This leaves an input device without a notify handler, and when force-bound to a device without an ACPI companion it stores a NULL pointer, causing a NULL pointer dereference on unbind.
- CVE-2026-93123Unknown
In the Linux kernel, the qcom-geni serial DMA TX completion path advanced the transmit FIFO by the byte count stored in port->tx_remaining. If uart_flush_buffer() ran after the hardware completed a DMA transfer but before the completion interrupt was handled, a stale DMA completion could advance and discard new bytes written after the flush. The fix marks an in-flight DMA transfer as stale when the transmit FIFO is flushed.
- CVE-2026-93120Unknown
In the Linux kernel, os_desc_qw_sign_show() in the USB gadget configfs driver passed OS_STRING_QW_SIGN_LEN (14) as the input length to utf16s_to_utf8s(), but that argument counts UTF-16 code units while the qw_sign[] array holds only 7 units. When the stored signature fills the array without a NUL terminator, the conversion reads up to 7 units past the end of qw_sign[], exposing adjacent bytes of struct gadget_info through the configfs attribute.
- CVE-2026-93119Unknown
In the Linux kernel, ljca_enumerate_gpio() in the USB ljca driver reads desc->bank_num from the device and loops writing into valid_pin[], which holds only 2 entries. Existing checks do not bound bank_num against the size of valid_pin[], so a device reporting bank_num 9 with pins_per_bank 7 passes validation and overruns the stack. A broken or malicious LJCA device can therefore overflow the stack.
- CVE-2026-93118Unknown
In the Linux kernel, ast_udc_probe() in the USB gadget aspeed_udc driver allocates a coherent DMA buffer used as backing store for endpoint buffers, and ast_udc_init_ep() derives per-endpoint pointers from udc->ep0_buf. A failed allocation is dereferenced during probe, and the existing error path calls ast_udc_remove(), which is unsafe before usb_add_gadget_udc() succeeds. The fix adds an allocation check and a local cleanup helper.
- CVE-2026-93117Unknown
In the Linux kernel, dynamic USB IDs are only guaranteed to be valid while usb_dynids_lock is held, as remove_id_store can free the node. usb_probe_interface used these IDs without copying them, leading to a use-after-free when probe runs concurrently with dynamic ID removal. The fix makes a copy of the ID in usb_probe_interface.
- CVE-2026-93115Unknown
In the Linux kernel, mlxbf_pmc_probe() in the platform/mellanox mlxbf-pmc driver passes the result of ACPI_COMPANION() to acpi_device_hid(), which dereferences it. Since a platform driver can be force-bound to a device without an ACPI companion, this leads to a NULL pointer dereference. The fix adds an ACPI_COMPANION() check against NULL and returns -ENODEV.
- CVE-2026-93114Unknown
In the Linux kernel, san_probe() in the platform/surface acpi-notify driver dereferences the result of ACPI_COMPANION() when installing the GSBUS address space handler. Since a platform driver can be force-bound to a device without an ACPI companion, this leads to a NULL pointer dereference. The fix checks the ACPI companion against NULL and returns -ENODEV.
- CVE-2026-93113Unknown
In the Linux kernel, a vulnerability was resolved in the clk: qcom: camcc-sc8280xp driver where CAMCC_GDSC_CLK was not unregistered. With the introduction of sync_state support in the clk and pmdomain subsystems, a kernel warning about titan_top_gdsc status stuck at 'on' occurred when unused clocks were shut down.
- CVE-2026-93110Unknown
In the Linux kernel, put_gid_ndev() is queued with call_rcu() and implemented in ib_core. Stopping the workqueues does not drain already queued callbacks, so RCU could invoke it after the module code has been unloaded. synchronize_rcu() does not wait for callbacks; the fix waits for them after all producers have stopped.
- CVE-2026-93109Unknown
In the Linux kernel, devx_free_subscription() can remain queued after the last DevX event file drops its module reference or an auxiliary driver detaches its devices. mlx5_ib can then unload before the callback runs. Registration error unwind has the same risk; the fix waits after all drivers have stopped.
- CVE-2026-93108Unknown
In the Linux kernel, IPoIB reclamation completions can be signaled from inside an RCU callback. Teardown can wake before the callback returns and unload ib_ipoib while its code is still executing. Client registration failure can also remove already-added devices and queue callbacks; the fix waits after client and workqueue teardown.
- CVE-2026-93106Unknown
In the Linux kernel, restore_dm_crypt_keys_to_thread_keyring() gets a reference to the user keyring before restoring saved dm-crypt keys. The same reference is passed to add_key_to_keyring() for each key, but that function drops the reference on every call. With multiple keys, the reference is dropped too many times, potentially triggering a refcount underflow or use-after-free. With more than five keys restored, a warning can be triggered.
- CVE-2026-93104Unknown
In the Linux kernel, rvt_alloc_device() deallocates the IB device when its port array cannot be allocated but then returns the pointer to the released allocation. Callers treat any non-NULL value as valid and dereference it, resulting in a use-after-free. The fix returns NULL immediately after deallocation so callers can propagate the allocation failure.
- CVE-2026-93103Unknown
Vulnerability in the hfi1 driver in the Linux kernel concerns the hfi1_free_devdata() function, which assumes the device was inserted into the unit table and unconditionally erases dd->unit. If xa_alloc_irq() fails, the zero-initialized unit remains zero, so full cleanup can remove an unrelated device from index 0.
- CVE-2026-93102Unknown
Vulnerability in the hfi1 driver involves memory leak during late probe failure. The hfi1_init_dd() function allocates shared AIP/VNIC RX support before returning. If hfi1_init() or hfi1_register_ib_device() later fails, init_one() tears down device data without calling hfi1_free_rx(), leaking netdev_rx and its dummy netdev.
- CVE-2026-93101Unknown
Vulnerability in the v4l2-async subsystem in the Linux kernel causes a crash when disconnecting an em28xx USB device using the i2c tvp5150 driver. When the asc_list is empty, v4l2_async_unregister_subdev() never calls v4l2_device_unregister_subdev(), leading to a crash. The fix calls v4l2_device_unregister_subdev() even when asc_list is empty.
- CVE-2026-93100Unknown
A use-after-free vulnerability exists in the Linux kernel's rdtgroup_kn_put() function within the fs/resctrl subsystem. The rdtgroup structure can be freed by two racing mechanisms, leading to use-after-free and potentially double-free. The fix replaces atomic_dec_and_test() with atomic_dec_and_mutex_lock() to ensure mutual exclusion with bulk free paths.
- CVE-2026-93099Unknown
Use-after-free vulnerability in the Linux kernel's resctrl subsystem when removing monitoring domains. Worker threads reading event counters may sleep and use delayed_work embedded in the domain structure. Under certain conditions, while a worker waits for a lock, the domain can be freed, leading to a reference to freed memory.
- CVE-2026-93098Unknown
A deadlock exists in the Linux kernel's rpmsg glink implementation when destroying an endpoint during driver detach. The endpoint destroy routine attempts to unregister the underlying rpmsg device, which tries to re-acquire the same device mutex already held by the device core, causing rmmod to hang indefinitely. The fix removes the redundant unregistration.
- CVE-2026-93097Unknown
Vulnerability in the cxl/mbox subsystem in the Linux kernel involves an infinite loop in the poison list handling. A device returning count == 0 with CXL_POISON_FLAG_MORE set every iteration never advances nr_records, so the max_errors guard never trips and the do/while loop runs forever while holding poison.mutex. This hangs the sysfs-triggered scan thread and blocks all subsequent poison operations. The fix stops the loop on an empty payload.
- CVE-2026-93096Unknown
Vulnerability in the cxl/features subsystem in the Linux kernel involves missing serialization of multi-part Get/Set Feature transfers. A payload larger than the mailbox payload size is split into multiple mailbox commands, but mbox_mutex only serializes individual commands and is dropped between iterations. Concurrent calls from fwctl and EDAC paths can interleave parts of transfers, corrupting the device's transfer context. The fix adds a per-mailbox feat_mutex held across the entire transfer.
- CVE-2026-93094Unknown
Vulnerability in the ath12k wifi driver in the Linux kernel involves dangling dp_link_peer references during AP vdev rollback. When vdev creation fails after ath12k_peer_create(), the function does not call ath12k_dp_link_peer_unassign(), leaving published references pointing to potentially freed memory, leading to use-after-free. The fix uses ath12k_peer_delete(), which performs unassign first.
- CVE-2026-93093Unknown
In the Linux kernel's ARM SCMI subsystem, a vulnerability exists where channel state is published after callbacks are enabled, potentially leading to NULL pointer dereference in the RX callback. This affects both mailbox and SMC channels, where early interrupts can trigger callbacks before the cinfo or handle pointers are initialized.
- CVE-2026-93092Unknown
In the Linux kernel's ARM SCMI subsystem, a vulnerability exists where the device notifier is not unregistered before the active_protocols IDR is destroyed. This can lead to a race condition where the notifier callback attempts to access the already freed IDR structure.
- CVE-2026-93091Unknown
In the Linux kernel's ARM SCMI subsystem, a vulnerability exists where notifications are not quiesced before TX/RX channels are torn down, potentially leading to use-after-free in the notification callback. Additionally, the late-init work may run after the notification instance is freed.
- CVE-2026-93090Unknown
In the Linux kernel's ARM SCMI subsystem, a vulnerability exists where on channel setup failure, previously registered channels are not properly cleaned up. This can lead to resource leaks or leaving an inconsistent state.
- CVE-2026-93089Unknown
In the Linux kernel's ARM SCMI subsystem, a vulnerability exists where on IDR insertion failure after successful transport channel setup, the cleanup callback (chan_free) is not invoked. This can lead to resource leaks such as IRQs, mailbox channels, and shared memory.
- CVE-2026-93086Unknown
In the Linux kernel's ARM SCMI subsystem, a vulnerability exists where during channel cleanup, the callback that removes entries from the IDR while iterating with idr_for_each() can invalidate the iterator, leading to unsafe behavior. Additionally, the callback cannot be protected by rcu_read_lock() because it may sleep.
- CVE-2026-93085Unknown
In the Linux kernel's ARM SCMI subsystem, a vulnerability exists where protocol IDs from the device tree (DT) outside the allowed range are not rejected, potentially leading to truncation and misinterpretation of the protocol. This can also cause aliasing of protocol identities.
- CVE-2026-93084Unknown
In the Linux kernel's ARM SCMI subsystem, a vulnerability exists where on protocol bind failure, the SCMI handle is not released, leading to reference leaks and leaving an inconsistent state. This also applies when device_link_add() fails.
- CVE-2026-93083Unknown
In the Linux kernel's ARM SCMI subsystem, a vulnerability exists where on failure to configure an additional TX receiver channel, the primary mailbox channel is not released, leaving the channel busy.
- CVE-2026-93082Unknown
In the Linux kernel's ARM SCMI subsystem, a vulnerability exists where on failure to configure an additional P2A receiver channel, the primary P2A channel is not released, leaving the channel busy.
- CVE-2026-93081Unknown
In the Linux kernel, the arm_scmi firmware driver has a device lifetime management flaw. scmi_child_dev_find() drops the reference returned by device_find_child() before returning the scmi_device pointer, so a concurrent unregister can release the device while the destroy path still uses the returned pointer. Additionally, the SCMI bus ID may be reused before the old sysfs entry is removed.
- CVE-2026-93080Unknown
In the Linux kernel, the arm_scmi firmware driver has a flaw in transport device lookup during channel teardown. scmi_device_destroy() uses the same protocol/name matching as driver binding, so it fails to find transport devices that must be unregistered. Additionally, duplicate protocol nodes in firmware can reuse an existing transport device and then destroy it.
- CVE-2026-93078Unknown
In the Linux kernel, the cxl/features module's cxlctl_set_feature() sizes its output buffer from the user's fwctl_rpc.out_len but never checks it is large enough to hold even the fwctl_rpc_cxl_out header. With out_len == 0, kvzalloc() returns ZERO_SIZE_PTR, which passes the !rpc_out check, and the subsequent rpc_out->size = 0 writes through the poison pointer.
- CVE-2026-93077Unknown
In the Linux kernel, the cxl/features module's cxl_get_feature() reads a feature in a loop but passes a fixed size_out as the output capacity every iteration. On the last partial iteration the buffer has less room left, so a device that returns more than asked can overflow feat_out.
- CVE-2026-93076Unknown
In the Linux kernel, the dax/fsdev module does not clear pgmap->vmemmap_shift when binding a static DAX device. When rebinding a static device from device_dax (which may set vmemmap_shift based on alignment) to fsdev_dax, the stale vmemmap_shift persists on the shared pgmap, causing the vmemmap to be built for a different folio order than fsdev requires.
Vulnerability data from NVD (NIST) · CISA KEV · EPSS

