CVE Vulnerability Catalog
Translated CVE descriptions from NVD NIST - in English
Browse vulnerabilities by packageCISA KEV catalog updated: (v2026.11.04)
Weekly CVE digest
One email a week with newly published vulnerabilities worth knowing about. No account needed.
This digest covers new vulnerabilities in general, not your servers. If you want to know which of them actually run in your infrastructure, that is what Secvalis does: it scans your machines and reports only what concerns them.
In the Linux kernel's Rust devres layer, a race condition occurs when two paths concurrently revoke a Devres. devres_release_all() calls Revocable::revoke() via the release callback, while Devres::drop() calls revoke_nosync() on another CPU. The revoker that does not claim the is_available swap returns immediately, but the other may still be executing drop_in_place() on the inner data, causing a use-after-free. The fix adds a Completion that Devres::drop() waits on when it loses the is_available swap.
A use-after-free vulnerability exists in the Linux kernel's trusted keys (KEYS: trusted) module due to incorrect TPM teardown ordering. The trusted_tpm_exit() function drops the TPM chip reference and frees the digest array before unregistering the trusted key type, allowing a concurrent key operation to dereference freed memory.
A use-after-free (UAF) vulnerability in the Linux kernel's AppArmor module, related to begin_current_label_crit_section(), has been fixed. The function could directly replace credential pointers (struct cred) during an LSM hook invocation, causing task->cred and task->real_cred to become inconsistent and leading to freed credential memory still being referenced by other tasks.
A fix has been applied in the Linux kernel for an out-of-bounds write in the AppArmor aa_vec_unique() function. When all label components are distinct, the NULL terminator is written to vec[n], but vec_setup() does not reserve space for this extra entry, causing a write one element past the end of the local array or allocation. The vulnerability can be triggered by an unprivileged task writing to /proc/self/attr/apparmor/current or via lsm_set_self_attr(2), and also through the securityfs .access file which is mode 0666.
In the Linux kernel, a bug in swap memory management causes hibernation slots to be freed even when a folio is present in the swap cache. The function swap_free_hibernation_slot() clears the entry under that folio, making it unreachable from the swap table and allowing the offset to be reused by another process. This can trigger silent memory corruption, process crashes, or data instability across unrelated userspace applications, typically when uswsusp is preparing the hibernation image.
In the Linux kernel, a vulnerability was fixed in the kmemleak module where kmemleak_scan() scanned all task stacks under a single RCU read-side critical section with no reschedule point. On hosts with very many threads, this could hog a CPU and trip the soft lockup watchdog. The fix walks tasks one PID at a time using find_ge_pid() and releases the RCU lock between tasks.
A vulnerability exists in the Linux kernel's queue_folios_pmd() function in mm/mempolicy, which fails to skip non-present PMD entries (e.g., device-private) before calling pmd_folio(). This can lead to VM_BUG_ON() on debug kernels, an oops on a bogus vmemmap dereference, or silently isolating an unrelated live folio from LRU. The issue is triggered when an HMM-based GPU driver migrates an anonymous THP folio to device memory and userspace then calls mbind(), migrate_pages(), or set_mempolicy_home_node().
In the Linux kernel, the mglru mechanism's sort_folio() function contained a buggy shortcut for folios that are no longer evictable but still on a generation list. The bug caused mlock_count to alias LIST_POISON2 (0x122, i.e. 290), leading to incorrect Mlocked accounting and folios remaining unevictable until freed. The shortcut also manipulated LRU flags in the wrong order, potentially causing unexpected behavior during concurrent folio isolation.
In the Linux kernel, migrate_pages_batch() unmaps each folio, which on KVM hosts triggers expensive MMU notifier callbacks and keeps the CPU busy for a long time. The loop only calls cond_resched(), which is a no-op on PREEMPTION kernels, so the migrating task (e.g. kcompactd) never reports a Tasks-RCU quiescent state and stalls the Tasks-RCU grace period for minutes.
In the Linux kernel, __migrate_device_pages() reads the folio mapping before calling folio_free_swap(). When folio_free_swap() succeeds, the folio is removed from the swap cache but the saved mapping still points to swap_space, leading to use of a stale mapping and invalid reference accounting, eventually triggering a folio reference count BUG.
A flaw in the Linux kernel's mm/pagewalk mechanism causes walk->action to remain incorrectly set to ACTION_AGAIN after a PMD entry is cleared, leading to duplicate walk callbacks and an out-of-bounds write. This was detected by KASAN in __mincore_unmapped_range.
In the Linux kernel, the scan loop in shrink_lruvec() only calls cond_resched(), which is a no-op on PREEMPTION kernels. As a result, the reclaiming task never reports a Tasks-RCU quiescent state and becomes a holdout, causing rcu_tasks stalls during reclaim.
In the Linux kernel, kernfs serializes file operations only per open file, so concurrent writes to memory.high or memory.max can overlap. If another writer raises or removes the limit, the first writer may keep reclaiming toward a stale target, and for memory.max it can loop indefinitely while repeatedly incrementing the OOM event counter.
On x86, TDX port I/O handling (handle_in() and handle_out()) uses the mask GENMASK(BITS_PER_BYTE * size, 0), which includes the high bit. For size=1 this yields a 9-bit mask 0x1FF instead of the 8-bit 0xFF, making the mask one bit too wide for all I/O sizes.
In the Linux kernel, dup_task_struct() copies user_event_mm from the parent to the child without taking a reference. If user_event_mm_alloc() fails, user_event_mm_dup() leaves the copied pointer unmodified, and when the child exits user_event_mm_remove() decrements a reference the child never owned, leading to a use-after-free (UAF).
In the Linux kernel, event_test_stuff() calls kthread_run() and unconditionally passes the returned task_struct pointer to kthread_stop(). When thread creation fails (e.g. under memory pressure during the boot-time self-test), kthread_run() returns an error pointer such as ERR_PTR(-ENOMEM), and kthread_stop() dereferences the invalid pointer, crashing the kernel.
In the Linux kernel, simple_ring_buffer_swap_reader_page() starts with retry set to 8 and decrements it only after a failed link replacement. On the final attempt, a successful replacement leaves retry at zero while a failed one leaves it at -1, so the !retry test reverses both outcomes and can corrupt the ring buffer.
In the Linux kernel, writing to buffer_subbuf_size_kb calls ring_buffer_subbuf_order_set(), which frees every sub-buffer of the ring buffer, including the reader page. trace_pipe readers hold pointers into those pages, and ring_buffer_peek() returns the event pointer after dropping the lock, so changing the sub-buffer order in that window leads to a use-after-free.
A use-after-free vulnerability exists in the Linux kernel tracing subsystem when two hist triggers with the same name (name=) are registered on different events. The second trigger reuses the first as named_data, but its entry in the tr->hist_vars list is never removed, leaving a dangling pointer to freed hist_data. A later hist trigger referencing a variable then dereferences the freed memory and panics the kernel.
In the Linux kernel, the debugfs lockdown check did not cover the mmap_prepare file operation, only mmap. As a result, files using mmap_prepare could bypass the lockdown when the kernel was in integrity mode.
Vulnerability data from NVD (NIST) · CISA KEV · EPSS

