Nixpkgs security tracker

Login with GitHub

Dismissed suggestions

These automatic suggestions were dismissed after initial triaging.

to select a suggestion for revision.

View:
Compact
Detailed
Dismissed
(max. allowed matches exceeded)
created 1 month ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
drm/v3d: Fix global performance monitor reference counting

In the Linux kernel, the following vulnerability has been resolved: drm/v3d: Fix global performance monitor reference counting In the SET_GLOBAL ioctl, v3d_perfmon_find() bumps the reference count on the perfmon it returns, but v3d_perfmon_set_global_ioctl() and v3d_perfmon_delete() fail to release that reference on several paths: 1. v3d_perfmon_set_global_ioctl() leaks the reference on its error paths. 2. CLEAR_GLOBAL leaks both the find reference and the reference previously stashed in v3d->global_perfmon by the SET_GLOBAL ioctl that configured it. 3. Destroying a perfmon that is the current global perfmon leaks the reference stashed by the SET_GLOBAL ioctl. Release each of these references explicitly.

Affected products

Linux
  • =<*
  • ==6.14
  • <ed2eaf3b7b1820b690e4b896d344e00027526a25
  • <6bf7e2affc6e62da7add393d7f352d4040f5bc27
  • =<6.18.*
  • <3e1947573140a57119294f0bff39ee18d93f23e1
  • =<7.0.*
  • <6.14
Dismissed
(max. allowed matches exceeded)
created 1 month ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
Bluetooth: RFCOMM: hold listener socket in rfcomm_connect_ind()

In the Linux kernel, the following vulnerability has been resolved: Bluetooth: RFCOMM: hold listener socket in rfcomm_connect_ind() rfcomm_get_sock_by_channel() scans rfcomm_sk_list under the list lock, but returns the selected listener after dropping that lock without taking a reference. rfcomm_connect_ind() then locks the listener, queues a child socket on it, and may notify it after unlocking it. The buggy scenario involves two paths, with each column showing the order within that path: rfcomm_connect_ind(): listener close: 1. Find parent in 1. close() enters rfcomm_get_sock_by_channel() rfcomm_sock_release(). 2. Drop rfcomm_sk_list.lock 2. rfcomm_sock_shutdown() without pinning parent. closes the listener. 3. Call lock_sock(parent) and 3. rfcomm_sock_kill() bt_accept_enqueue(parent, unlinks and puts parent. sk, true). 4. Read parent flags and may 4. parent can be freed. call sk_state_change(). If close wins the race, parent can be freed before rfcomm_connect_ind() reaches lock_sock(), bt_accept_enqueue(), or the deferred-setup callback. Take a reference on the listener before leaving rfcomm_sk_list.lock. After lock_sock() succeeds, recheck that it is still in BT_LISTEN before queueing a child, cache the deferred-setup bit while the parent is locked, and drop the reference after the last parent use. KASAN reported a slab-use-after-free in lock_sock_nested() from rfcomm_connect_ind(), with the freeing stack going through rfcomm_sock_kill() and rfcomm_sock_release().

Affected products

Linux
  • =<*
  • =<5.15.*
  • <a07d741c077d4e34b16458241a94d29039386553
  • <f5ec76bdbeb80f75ad0be204371afffee0f8fac8
  • =<6.18.*
  • =<6.1.*
  • <b0e33e409715c617e2a20f46f99aa5403a14dfda
  • <6f4462d12133106460d7c046b95aad2491e3fddf
  • <43c441edacf953b39517a44f5e5e10a93618b226
  • <8802413ce63175fb522a2bd609fb043a3550c720
  • =<7.0.*
  • ==2.6.12
  • <de31973ef00e5aa55496f84cf6a44bb157a34e02
  • =<5.10.*
  • =<6.12.*
  • <1f73f92f66251065a5f39b09a47cf05ea14d3107
  • =<6.6.*
  • <2.6.12
Dismissed
(max. allowed matches exceeded)
created 1 month ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
rseq: Fix using an uninitialized stack variable in rseq_exit_user_update()

In the Linux kernel, the following vulnerability has been resolved: rseq: Fix using an uninitialized stack variable in rseq_exit_user_update() There is an bug in which an uninitialized stack variable is used in rseq_exit_user_update() as reported by syzbot: BUG: KMSAN: kernel-infoleak in rseq_set_ids_get_csaddr include/linux/rseq_entry.h:502 [inline] The local variable: struct rseq_ids ids = { .cpu_id = task_cpu(t), .mm_cid = task_mm_cid(t), .node_id = cpu_to_node(ids.cpu_id), }; According to the C standard, the evaluation order of expressions in an initializer list is indeterminately sequenced. The compiler (Clang, in this KMSAN build) evaluates `cpu_to_node(ids.cpu_id)` *before* `ids.cpu_id` is initialized with `task_cpu(t)`. This is fixed by moving the assignment of ids.node_id outside the structure initialization.

Affected products

Linux
  • <e12d20a63b61aaf9de4772effccf42cc9a003e58
  • <7.0.13
  • <6d99479799c69c3cb588fcda19c81d8f61d64ecd
Dismissed
(max. allowed matches exceeded)
created 1 month ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
ALSA: PCM: Fix wait queue list corruption in snd_pcm_drain() on linked streams

In the Linux kernel, the following vulnerability has been resolved: ALSA: PCM: Fix wait queue list corruption in snd_pcm_drain() on linked streams snd_pcm_drain() uses init_waitqueue_entry which does not clear entry.prev/next, and add_wait_queue with a conditional remove_wait_queue that is skipped when to_check is no longer in the group after concurrent UNLINK. The orphaned wait entry remains on the unlinked substream sleep queue. On the next drain iteration, add_wait_queue adds the entry to a new queue while still linked on the old one, corrupting both lists. A subsequent wake_up dereferences NULL at the func pointer (mapped from the spinlock at offset 0 of the misinterpreted wait_queue_head_t), causing a kernel panic. Replace init_waitqueue_entry/add_wait_queue/conditional remove_wait_queue with init_wait_entry/prepare_to_wait/ finish_wait. init_wait_entry clears prev/next via INIT_LIST_HEAD on each iteration and sets autoremove_wake_function which auto-removes the entry on wake-up. finish_wait safely handles both the already-removed and still-queued cases.

Affected products

Linux
  • =<*
  • <6.20
  • <6.6.143
  • <d68b621bb5a48051932f1017a6e1bc9b18f854d0
  • =<5.10.*
  • <7.0
  • <6.18.36
  • <7c71a9522555ff137a9ca36b15d759ca04d84788
  • <88fe2e3658726cb21ff2dcf9770bf672f9b9d31b
  • ==7.0
  • <cac5bf3500ee6422cf64e0df0b5daeecfed42917
  • =<6.1.*
  • =<6.18.*
  • <cd98837db15f323463b8df07282ac723bd5c3fed
  • <b053fcd8912f06c30f932f5b8ec41c72de474695
  • ==c2f64e05a0587a83ec42dbd6b7a7ded79b2ff694
  • <d842f26a167e77a36f3ed333b9fa99d36ef99fe6
  • <5.10.259
  • =<6.12.*
  • <6.1.176
  • <6.12.94
  • =<7.0.*
  • =<6.6.*
Dismissed
(max. allowed matches exceeded)
created 1 month ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
Bluetooth: RFCOMM: validate skb length in MCC handlers

In the Linux kernel, the following vulnerability has been resolved: Bluetooth: RFCOMM: validate skb length in MCC handlers The RFCOMM MCC handlers cast skb->data to protocol-specific structs without validating skb->len first. A malicious remote device can send truncated MCC frames and trigger out-of-bounds reads in these handlers. Fix this by using skb_pull_data() to validate and access the required data before dereferencing it. rfcomm_recv_rpn() requires special handling since ETSI TS 07.10 allows 1-byte RPN requests. Handle this by validating only the DLCI byte first, and validating the full struct only when len > 1.

Affected products

Linux
  • =<5.15.*
  • =<*
  • <98377e6b1a1a56561ec66a181573ea2b61b2079e
  • <1b070ac9e99c2c2c3a8112943ca98ab6fca7f10c
  • =<6.1.*
  • =<6.18.*
  • <23882b828c3c8c51d0c946446a396b10abb3b16b
  • ==2.6.12
  • =<7.0.*
  • <0d637136ce89f9a2309b2c3502402ce400dab0ef
  • <3eabc6d47a0ad22b053329997aaf0ec1e581e392
  • <08b9c1fbe78f4ad3f6250c6541cfaabdbeb81997
  • =<6.12.*
  • <7c15c7c2878957cbfed93bcc29c13fdace464254
  • =<6.6.*
  • <2.6.12
Dismissed
(max. allowed matches exceeded)
created 1 month ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
net/sched: act_api: use RCU with deferred freeing for action lifecycle

In the Linux kernel, the following vulnerability has been resolved: net/sched: act_api: use RCU with deferred freeing for action lifecycle When NEWTFILTER and DELFILTER are run concurrently it is possible to create a race with an associated action. Let's illustrate with CPU0 running NEWTFILTER and CPU1 running DELFILTER: 0: mutex_lock() <-- holds the idr lock 0: rcu_read_lock() 0: p = idr_find(idr, index) <-- action p is valid (RCU protects IDR) 0: mutex_unlock() <-- releases the idr lock 1: refcount_dec_and_mutex_lock() <-- refcnt 1->0, mutex held 1: idr_remove(idr, index) <-- Action removed from IDR 1: mutex_unlock() <-- mutex released allowing us to delete the action 1: tcf_action_cleanup(p); kfree(p) <-- Kfrees p immediately, no deferral 0: refcount_inc_not_zero(&p->tcfa_refcnt) <-- ouch, UAF p points to freed memory This patch fixes the race condition between NEWTFILTER and DELFILTER by adding struct rcu_head to tc_action used in the deferral and introducing a call_rcu() in the delete path to defer the final kfree(). Note: this is a revert of commit d7fb60b9cafb ("net_sched: get rid of tcfa_rcu") but also modernization/simplification to directly use kfree_rcu(). Let's illustrate the new restored code path: 0: rcu_read_lock() 1: refcount_dec_and_mutex_lock() <-- refcnt 1->0, mutex held 1: idr_remove(idr, index) 1: mutex_unlock() 1: call_rcu(&p->tcfa_rcu, tcf_action_rcu_free) <-- defer kfree after grace period 0: p = idr_find(idr, index) 0: refcount_inc_not_zero(&p->tcfa_refcnt) <-- fails, refcnt already 0 1: rcu_read_unlock() <-- release so freeing can run after grace period After CPU1 calls idr_remove(), the object is no longer reachable through the IDR. CPU0's subsequent idr_find() will return NULL, and even if it still held a stale pointer, the immediate kfree() is now deferred until after the RCU grace period, so no UAF can occur.

Affected products

Linux
  • =<5.15.*
  • =<*
  • <98b2e40879abf0245be5a5b7af69e0f6ff524ac3
  • =<6.1.*
  • <18af5d2ef0c4f65787fd1280c8b23286b9f2a835
  • <91d105d2cbe002f9c7b43a6183adedc37e1da1f7
  • =<6.18.*
  • <8b136f18ac4b2ace5aaad3305b3f8a5d8165a009
  • <1f1b98fea6b9ea30507d0f2fbff6750292d097e2
  • ==4.14
  • =<7.0.*
  • =<5.10.*
  • <5057e1aca011e51ef51498c940ef96f3d3e8a305
  • =<6.12.*
  • <b60e9391142e983fab2be53497aa8f71fdd09cd5
  • =<6.6.*
  • <5dd51e09020c65aa53cf128e5e3517cd53b3c113
  • <4.14
Dismissed
(max. allowed matches exceeded)
Permalink CVE-2026-55895
5.7 MEDIUM
  • CVSS version (CVSS): 4.0
  • Attack Vector (AV): Local (L)
  • Attack Complexity (AC): Low (L)
  • Attack Requirement (AT): None (N)
  • Privileges Required (PR): None (N)
  • User Interaction (UI): Active (A)
  • Vulnerable System Impact Confidentiality (VC): High (H)
  • Vulnerable System Impact Integrity (VI): High (H)
  • Vulnerable System Impact Availability (VA): High (H)
  • Subsequent System Impact Confidentiality (SC): None (N)
  • Subsequent System Impact Integrity (SI): None (N)
  • Subsequent System Impact Availability (SA): None (N)
  • Exploit Maturity (E): Unreported (U)
  • Modified Attack Vector (MAV): Local (L)
  • Modified Attack Complexity (MAC): Low (L)
  • Modified Attack Requirement (MAT): None (N)
  • Modified Privileges Required (MPR): None (N)
  • Modified User Interaction (MUI): Active (A)
  • Modified Vulnerable System Impact Confidentiality (MVC): High (H)
  • Modified Vulnerable System Impact Integrity (MVI): High (H)
  • Modified Vulnerable System Impact Availability (MVA): High (H)
  • Modified Subsequent System Impact Confidentiality (MSC): Negligible (N)
  • Modified Subsequent System Impact Integrity (MSI): Negligible (N)
  • Modified Subsequent System Impact Availability (MSA): Negligible (N)
  • Safety (S): Not Defined (X)
  • Automatable (AU): Not Defined (X)
  • Recovery (R): Not Defined (X)
  • Value Density (V): Not Defined (X)
  • Vulnerability Response Effort (RE): Not Defined (X)
  • Provider Urgency (U): Not Defined (X)
  • Confidentiality Req. (CR): Not Defined (X)
  • Integrity Req. (IR): Not Defined (X)
  • Availability Req. (AR): Not Defined (X)
created 1 month ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
Vim: Vimscript Code Injection in netrw NetrwLocalRmFile() via crafted filename

Vim is an open source, command line text editor. Prior to 9.2.0663, a Vimscript code injection vulnerability exists in s:NetrwLocalRmFile() in the netrw plugin (runtime/pack/dist/opt/netrw/autoload/netrw.vim) when deleting a local file from the browser. A filename derived from the buffer's directory listing is interpolated into an Ex command line passed to :execute with only the backslash character escaped, allowing a crafted filename containing a bar (|) to terminate the intended command and execute arbitrary Vimscript, including shell commands via :call system() and :!. This vulnerability is fixed in 9.2.0663.

Affected products

vim
  • ==< 9.2.0663
Dismissed
(max. allowed matches exceeded)
created 1 month ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
USB: serial: io_ti: fix heap overflow in build_i2c_fw_hdr()

In the Linux kernel, the following vulnerability has been resolved: USB: serial: io_ti: fix heap overflow in build_i2c_fw_hdr() build_i2c_fw_hdr() allocates a fixed-size buffer of (16*1024 - 512) + sizeof(struct ti_i2c_firmware_rec) bytes, then copies le16_to_cpu(img_header->Length) bytes into it without validating that Length fits within the available space after the firmware record header. img_header->Length is a __le16 from the firmware file and can be up to 65535. check_fw_sanity() validates the total firmware size but not img_header->Length specifically. Fix by rejecting images where img_header->Length exceeds the available destination space.

Affected products

Linux
  • <5a79b634ee58786ca627268daefa7744f2af2e14
  • =<*
  • =<5.15.*
  • <4cb722747ed25971f35cc47ce5c0e79d7f717713
  • =<6.18.*
  • =<6.1.*
  • <0fd2b00b2d3d05e3eaa13342b3dfb0fa85c226ae
  • ==2.6.12
  • =<7.0.*
  • <b7faf660eefa2047ebc2959ff76da2b6eae2e9e3
  • =<5.10.*
  • <130d6567eb148040eed1b73e1414ad6c27d22bd5
  • <2fd64bf0ad66ab5de0c73524591d879427ba5aba
  • =<6.12.*
  • <3e187152f44d76d7633a3855ffd0099e1588b82a
  • <294692d3296eee3391c348d7ea6401916d27806c
  • =<6.6.*
  • <2.6.12
Dismissed
(max. allowed matches exceeded)
created 1 month ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
accel/ivpu: Add bounds checks for firmware log indices

In the Linux kernel, the following vulnerability has been resolved: accel/ivpu: Add bounds checks for firmware log indices Add validation that read and write indices in the firmware log buffer are within valid bounds (< data_size) before using them. If out-of-bounds indices are encountered (from firmware), clamp them to safe values instead of proceeding with invalid offsets. This prevents potential out-of-bounds buffer access when firmware supplies invalid log indices.

Affected products

Linux
  • =<*
  • ==6.13
  • <6.12.94
  • =<6.18.*
  • <dd1311bcf0e62f0c515115f46a3813370f4a4bb1
  • <535da9ad8420c3b686a642403d4147ff220255fd
  • =<7.0.*
  • =<6.12.*
  • <8ec70c0dbdf04392a26e03e38798a373934177be
  • <6.13
  • <5961c703414048f46818be8bbb11075a9a63fb4e
Dismissed
(max. allowed matches exceeded)
created 1 month ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
Bluetooth: ISO: Fix a use-after-free of the hci_conn pointer

In the Linux kernel, the following vulnerability has been resolved: Bluetooth: ISO: Fix a use-after-free of the hci_conn pointer In iso_sock_rebind_bc(), the bis pointer is cached, then the socket lock is dropped: bis = iso_pi(sk)->conn->hcon; /* Release the socket before lookups since that requires hci_dev_lock * which shall not be acquired while holding sock_lock for proper * ordering. */ release_sock(sk); hci_dev_lock(bis->hdev); During the unlocked window, could a concurrent close() destroy the connection and free the bis structure, causing hci_dev_lock(bis->hdev) to access memory after it is freed, fix this by using the hdev reference which was safely acquired via iso_conn_get_hdev().

Affected products

Linux
  • <d324b8aa20bd3c3394e3647dc22491d88f3f4e7a
  • =<*
  • =<7.0.*
  • <6.19
  • <f50331f2a1441ec49988832c3a95f2edacc47322
  • ==6.19