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 16 hours ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
ACPI: NFIT: core: Fix possible NULL pointer dereference

In the Linux kernel, the following vulnerability has been resolved: ACPI: NFIT: core: Fix possible NULL pointer dereference After commit 9b311b7313d6 ("ACPI: NFIT: Install Notify() handler before getting NFIT table"), acpi_nfit_probe() installs an ACPI notify handler for the NFIT device before checking the presence of the NFIT table. If that table is not there, 0 is returned without allocating the acpi_desc object and setting the driver data pointer of the NFIT device. If the platform firmware triggers an NFIT_NOTIFY_UC_MEMORY_ERROR notification on the NFIT device at that point, acpi_nfit_uc_error_notify() will dereference a NULL pointer. Prevent that from occurring by adding an acpi_desc check against NULL to acpi_nfit_uc_error_notify().

Affected products

Linux
  • <a44343fe230aa48c74ef09830f3c5c90848b257e
  • =<6.18.*
  • <873576e585da5d0fc5debbab74eed565c0acea99
  • =<6.12.*
  • =<7.1.*
  • <3c8f73b0fbdf956c98e2329d5aaea3ad09a9cfb6
  • =<*
  • =<6.6.*
  • <452945662fd8e9862a2d2043239c7ee1815d1ac4
  • <027e128abb82788189d6d45b68e3e8e7329b67be
  • <6.6
  • ==6.6
Dismissed
(max. allowed matches exceeded)
created 16 hours ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
ALSA: usb-audio: avoid kobject path lookup in DualSense match

In the Linux kernel, the following vulnerability has been resolved: ALSA: usb-audio: avoid kobject path lookup in DualSense match The DualSense jack-detection input handler verifies that a matching input device belongs to the same physical controller by building kobject path strings for both the input device and the USB audio device, then comparing the path prefix. This was observed when a weak physical connection caused the controller to rapidly disconnect and reconnect. During that repeated hotplug, snd_dualsense_ih_match() can run while the controller's USB device is being disconnected. kobject_get_path() walks ancestor kobjects and dereferences their names; if the USB device kobject name is no longer valid, this can fault in strlen(): RIP: 0010:strlen+0x10/0x30 Call Trace: kobject_get_path+0x34/0x150 snd_dualsense_ih_match+0x49/0xd0 [snd_usb_audio] input_register_device+0x566/0x6a0 ps_probe+0xb89/0x1590 [hid_playstation] The same ownership check can be done without building kobject path strings. The input device is parented below the HID device, USB interface and USB device, so walking the input device parent chain and comparing against the mixer USB device preserves the check without dereferencing kobject names during disconnect.

Affected products

Linux
  • <5.10.261
  • ==6.17
  • =<7.1.*
  • =<6.1.*
  • =<5.15.*
  • <662a1d7b5affc424ea4f4bc20dd99be29e687886
  • =<5.10.*
  • <a47ecd904c51ae6a42957feb3cf2f4266adee2e5
  • <5.15.212
  • <6.12.96
  • <6.17
  • <7693c0cc415f3a16a7a3355f245474a5e661be4e
  • <6.17
  • ==104ad9bae11ee450fb7d0595ff7876cfb6527838
  • <6.6.145
  • =<6.6.*
  • <4566bf8ae9dbfe81bdc2ff1702d59db8a233b06e
  • <5.5
  • <6.1.178
  • <e4c66a149c408e44e60bfec3fabf08b6b7abbc60
  • <4246dd043b7a4f8e3bc1d2896e81d11220610eda
  • =<6.18.*
  • ==0105cfc41abeb428d4405951a20e1e239bea5e1d
  • <c1da6d3f45036fa63672ee04ad97cb526b40b987
  • =<6.12.*
  • <a263eb12cbe2e208e6e637df0f9b0be9a484158e
  • =<*
Dismissed
(max. allowed matches exceeded)
created 16 hours ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
fuse-uring: end fuse_req on io-uring cancel task work

In the Linux kernel, the following vulnerability has been resolved: fuse-uring: end fuse_req on io-uring cancel task work When io_uring delivers task work with tw.cancel set (PF_EXITING, PF_KTHREAD fallback, or percpu_ref_is_dying on the ring context), fuse_uring_send_in_task() takes the cancel branch, assigns -ECANCELED, and falls through to fuse_uring_send(). That path only flips the entry to FRRS_USERSPACE and completes the io_uring cmd; it never discharges the ring entry's owning reference to the fuse_req that fuse_uring_add_req_to_ring_ent() handed it at dispatch time. fuse_uring_send_in_task() tw.cancel == true err = -ECANCELED fuse_uring_send(ent, cmd, err, issue_flags) ent->state = FRRS_USERSPACE list_move(&ent->list, &queue->ent_in_userspace) ent->cmd = NULL io_uring_cmd_done(-ECANCELED) /* ent->fuse_req still set, req still hashed */ The fuse_req stays linked on fpq->processing[hash] and fuse_request_end() is never invoked. The originating syscall thread blocks in D-state in request_wait_answer() until fuse_abort_conn() runs, which can be the entire connection lifetime. For FR_BACKGROUND requests fc->num_background is never decremented either, so repeated cancels inflate the counter until max_background is hit and all later background ops stall. tw.cancel does not imply a connection abort (e.g. a single io_uring worker thread exits while the fuse connection stays up), so this cannot be left for fuse_abort_conn() to clean up. Ending the req but still routing the entry through fuse_uring_send() is not enough: that leaves a req-less entry on ent_in_userspace, and ent_list_request_expired() dereferences ent->fuse_req unconditionally on the head of that list, which would then NULL-deref. Fix the cancel branch to release the entry directly. Remove it from the queue, complete the io_uring cmd, end the fuse_req, free the entry, and drop its queue_refs (waking the teardown waiter if it was the last).

Affected products

Linux
  • <6.14
  • <bb476ef8e1027a9d509fbaaf81f5061a07e9e5a7
  • =<6.18.*
  • =<7.1.*
  • =<*
  • <bea4fe98204b6ce7eb8e29f7bf867dd7619b3ddd
  • <4f45f276d5b4412eade6f74f2e37f3adba0473ed
  • ==6.14
Dismissed
(max. allowed matches exceeded)
created 16 hours ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
gpio: sch: use raw_spinlock_t in the irq startup path

In the Linux kernel, the following vulnerability has been resolved: gpio: sch: use raw_spinlock_t in the irq startup path sch_irq_unmask() enables the GPIO IRQ and then updates the controller state through sch_irq_mask_unmask(), which takes sch->lock with spin_lock_irqsave(). The callback can be reached from irq_startup() while setting up a requested IRQ. That path is not sleepable, but on PREEMPT_RT a regular spinlock_t becomes a sleeping lock. This issue was found by our static analysis tool and then manually reviewed against the current tree. The grounded PoC kept the request_threaded_irq() -> __setup_irq() -> irq_startup() -> sch_irq_unmask() -> sch_irq_mask_unmask() carrier and used the original spin_lock_irqsave(&sch->lock) edge. Lockdep reported: BUG: sleeping function called from invalid context hardirqs last disabled at ... __setup_irq.constprop.0 ... [vuln_msv] sch_rt_spin_lock_irqsave+0x1c/0x30 [vuln_msv] sch_irq_mask_unmask.constprop.0+0x31/0x70 [vuln_msv] __setup_irq.constprop.0+0xd/0x30 [vuln_msv] Convert the SCH controller lock to raw_spinlock_t. The same lock is also used by the GPIO direction and value callbacks, but those critical sections only update MMIO-backed GPIO registers and do not contain sleepable operations. Keeping this register lock non-sleeping is therefore appropriate for the irqchip callbacks and does not change the GPIO-side locking contract.

Affected products

Linux
  • <a235cec779bb39ec8f961a935b28a2ce278c6c64
  • <4508366ab7dd0c2917a51a9c2e23cc1b9d35157a
  • <4f03a15cc73c83740fc355ee22b336492d17b4da
  • =<6.18.*
  • <7a550256d68bbdfa0903ab1c4595c04a6815493a
  • =<5.15.*
  • =<6.12.*
  • =<7.1.*
  • <41cad91a09d69e8fff4e936db29b1054b4e9f9f7
  • <5.13
  • =<6.1.*
  • =<*
  • =<6.6.*
  • <3b1aa05ec27eeccc889ecaa3f2d9baa9f453e50d
  • <286533cb14a3c8a8bd39ff64ea2fc8e1aa0f638b
  • ==5.13
Dismissed
(max. allowed matches exceeded)
created 16 hours ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
smb: client: fix change notify replay double-free

In the Linux kernel, the following vulnerability has been resolved: smb: client: fix change notify replay double-free A response-bearing attempt can return a replayable error and free its response buffer. If SMB2_notify_init() fails before the next send, cleanup retains the previous buffer type and frees that response again. Reset response bookkeeping before each attempt to prevent the stale free.

Affected products

Linux
  • <d684f4134998085702009b94c35c2003fc9e72d3
  • <6.8
  • =<6.18.*
  • =<6.12.*
  • <6.6.145
  • <5821f9dbb8b5b24391850a13418e633edd0fb003
  • <901891513951bc8322ece754863909ea45af95c6
  • <145f820dcbb2cced374f2532f8a61a44dce4a615
  • <52af1975f0dfae990c5a0e85872cc41be0e88a68
  • ==6.8
  • =<6.6.*
  • =<7.1.*
  • =<*
Dismissed
(max. allowed matches exceeded)
created 16 hours ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
Input: iforce - bound the device-reported force-feedback effect index

In the Linux kernel, the following vulnerability has been resolved: Input: iforce - bound the device-reported force-feedback effect index iforce_process_packet() handles a status report (packet id 0x02) by taking a force-feedback effect index straight from the device wire and using it to address the per-effect state array: i = data[1] & 0x7f; if (data[1] & 0x80) { if (!test_and_set_bit(FF_CORE_IS_PLAYED, iforce->core_effects[i].flags)) ... } else if (test_and_clear_bit(FF_CORE_IS_PLAYED, iforce->core_effects[i].flags)) { ... } The index is masked only with 0x7f, so it ranges 0..127, but core_effects[] holds only IFORCE_EFFECTS_MAX (32) entries. For an index of 32..127 the test_and_set_bit()/test_and_clear_bit() is an out-of-bounds single-bit read-modify-write past the array. core_effects[] is the second-to-last member of struct iforce, so the write lands in the trailing members and beyond the embedding kzalloc()'d iforce_serio / iforce_usb object. data[1] is unvalidated device payload on both transports (the USB interrupt endpoint and serio), and the status path is not gated on force feedback being present, so a malicious or counterfeit device can set or clear a bit at an attacker-chosen offset past the object. Reject an out-of-range index instead of indexing with it. Bound against the array dimension IFORCE_EFFECTS_MAX rather than dev->ff->max_effects so the check guarantees memory safety regardless of how many effects the device registered. A legitimate "effect started/stopped" status always carries an index below IFORCE_EFFECTS_MAX, so well-formed devices are unaffected; the neighbouring mark_core_as_ready() loop is already bounded and is left untouched.

Affected products

Linux
  • =<6.18.*
  • <c21295616a8a52b9a5f18cd4ca8c73030eda3d4f
  • <d10b0507fa0f5b46764b178e3271f9012f2df677
  • <0e9943d2e4c63496b6ca84bc66fd3c71d40558e2
  • =<5.15.*
  • =<6.12.*
  • <6c0f2901c9d325d4a0574c4237fd507810d225ff
  • =<7.1.*
  • <e5fa31f0550b55d80045669ae9080dd5b88abffa
  • <2.6.12
  • =<6.1.*
  • =<6.6.*
  • ==2.6.12
  • <b1b79e89bc33e4c682d3df7ae2aadc62b5a0c310
  • <a40250f97c312e000e3616c9074022311a0efbc3
  • =<*
  • <70019779325f2bb5f5a4098e91e79c655f50fcef
  • =<5.10.*
Dismissed
(max. allowed matches exceeded)
created 16 hours ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
io_uring/nop: fix file reference leak with IOSQE_FIXED_FILE

In the Linux kernel, the following vulnerability has been resolved: io_uring/nop: fix file reference leak with IOSQE_FIXED_FILE NOP file-acquisition support choses between a fixed (registered) file and a normal fget()'d file based on its own IORING_NOP_FIXED_FILE flag in sqe->nop_flags. However, a request's REQ_F_FIXED_FILE is set independently from the generic IOSQE_FIXED_FILE sqe flag during request init, before the issue handler runs. If a NOP is submitted with IOSQE_FIXED_FILE set (so REQ_F_FIXED_FILE is set) but without IORING_NOP_FIXED_FILE, io_nop() takes the normal path and grabs a real reference via io_file_get_normal(). On completion, io_put_file() only drops the reference when REQ_F_FIXED_FILE is clear, so the fget()'d file is never released and leaks: BUG: memory leak unreferenced object 0xffff88800f42c240 (size 176): kmem_cache_alloc_noprof+0x358/0x440 alloc_empty_file+0x57/0x180 path_openat+0x44/0x1e50 do_file_open+0x121/0x200 do_sys_openat2+0xa7/0x150 __x64_sys_openat+0x82/0xf0 Decide between fixed and normal file acquisition from REQ_F_FIXED_FILE, the same way io_assign_file() does for every other opcode, and fold IORING_NOP_FIXED_FILE into REQ_F_FIXED_FILE at prep time.

Affected products

Linux
  • <722869fcff598fad20d5ab79c305897a7534708b
  • =<6.18.*
  • <2564ca2e31bd8ee8348362941af2ee4671e487ca
  • <6.13
  • <7267717f35787167fcce4bc14f6ef3fa06682dcf
  • =<7.1.*
  • =<*
  • ==6.13
Dismissed
(max. allowed matches exceeded)
created 16 hours ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
ksmbd: fix UAF of struct file_lock in SMB2_LOCK deferred-lock cancellation

In the Linux kernel, the following vulnerability has been resolved: ksmbd: fix UAF of struct file_lock in SMB2_LOCK deferred-lock cancellation When a blocking byte-range lock request is deferred in the FILE_LOCK_DEFERRED path, ksmbd registers the asynchronous work into the connection's async_requests list via setup_async_work(). The cancel callback smb2_remove_blocked_lock() holds a reference to the flock. If the lock waiter is subsequently woken up but the work state is no longer KSMBD_WORK_ACTIVE (e.g., due to a concurrent cancellation), the cleanup path calls locks_free_lock(flock) without dequeuing the work from the async_requests list. Concurrently, smb2_cancel() walks the list under conn->request_lock and invokes the cancel callback, which then dereferences the already freed 'flock'. This leads to a slab-use-after-free inside __wake_up_common. Fix this by restructuring the cleanup logic after the worker returns from ksmbd_vfs_posix_lock_wait(). Move list_del(&smb_lock->llist) and release_async_work(work) to the top of the cleanup block. This guarantees that the async work is completely dequeued and serialized under conn->request_lock before locks_free_lock(flock) is called, rendering the flock unreachable for any concurrent smb2_cancel().

Affected products

Linux
  • <6.1.178
  • <7703fd9aba1f2483c8e55f9ff73b7663e0761ed9
  • <6.18.39
  • =<6.18.*
  • <d20d1c8ba5765d1d12eefc0aee6385ab3f240e1e
  • <6.12.96
  • =<6.12.*
  • <6.6.145
  • =<7.1.*
  • =<6.1.*
  • <5aa1cb01155f96824003baf7997cdf1f150caba3
  • =<*
  • <7.1.4
  • =<6.6.*
  • <463bbd79698513af4dad50fe1c573825f297ca2e
  • <367c42a611fe488b7b03f1f6737f4dee0e8b20a2
  • <5c75275c0fc9a2deb0d8f5604edcb16f288171c8
Dismissed
(max. allowed matches exceeded)
created 16 hours ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
staging: rtl8723bs: fix OOB reads in IE loops in issue_assocreq() and join_cmd_hdl()

In the Linux kernel, the following vulnerability has been resolved: staging: rtl8723bs: fix OOB reads in IE loops in issue_assocreq() and join_cmd_hdl() Two IE parsing loops are missing the header bounds checks before they dereference pIE->length: - issue_assocreq() walks pmlmeinfo->network.ies to build the association request. If the stored IE data ends with only an element_id byte and no length byte, pIE->length is read one byte past the end of the buffer. - join_cmd_hdl() walks pnetwork->ies during station join and has the same problem under the same conditions. Both buffers are filled from AP beacon and probe-response frames, so a malicious AP that sends a truncated final IE can trigger the issue. Apply the two-guard pattern established in update_beacon_info(): 1. Break if fewer than sizeof(*pIE) bytes remain. 2. Break if the IE's declared data extends past the buffer end.

Affected products

Linux
  • <bc881c9915c4468747d0ca5fd1abd7b313cfb0f4
  • <402f13ec95945f34a210b28df1f8740d3d4a58c5
  • <605ebd94d0f469204f3c9f2f84acc71e43e2780f
  • =<6.18.*
  • <ef61d628dfad38fead1fd2e08979ae9126d011d5
  • =<6.12.*
  • =<7.1.*
  • <ad2637c46ef8b8ae0894372a2d39fdfcdc420a1e
  • <4c21eec80cf502d9ea18e0b946246b2376452786
  • <c38d16b1ffac385c9e4b38447cd5c46af1114b58
  • ==4.12
  • =<6.1.*
  • =<6.6.*
  • =<*
  • =<5.15.*
  • <a830bdc82461353bf7b1f8a2ad2689bf5d2de444
  • <4.12
  • =<5.10.*
Dismissed
(no matching packages found)
Permalink CVE-2026-14955
6.5 MEDIUM
  • CVSS version (CVSS): 3.1
  • Attack Vector (AV): Network (N)
  • Attack Complexity (AC): Low (L)
  • Privileges Required (PR): Low (L)
  • User Interaction (UI): None (N)
  • Scope (S): Unchanged (U)
  • Confidentiality (C): High (H)
  • Integrity (I): None (N)
  • Availability (A): None (N)
  • Modified Attack Vector (MAV): Network (N)
  • Modified Attack Complexity (MAC): Low (L)
  • Modified Privileges Required (MPR): Low (L)
  • Modified User Interaction (MUI): None (N)
  • Modified Confidentiality (MC): High (H)
  • Modified Scope (MS): Unchanged (U)
  • Modified Integrity (MI): None (N)
  • Modified Availability (MA): None (N)
created 16 hours ago Activity log
  • Created & dismissed (no matching packages found) suggestion
Checkout Field Editor for WooCommerce (Pro) <= 3.7.7 - Authenticated (Subscriber+) Path Traversal to Arbitrary File Read via 'thwcfe_legacy_file' Parameter

The Checkout Field Editor for WooCommerce (Pro) plugin for WordPress is vulnerable to Directory Traversal in all versions up to, and including, 3.7.7 via the 'thwcfe_legacy_file' parameter. This makes it possible for authenticated attackers, with subscriber-level access and above, to read the contents of arbitrary files on the server, which can contain sensitive information.

Affected products

Checkout Field Editor for WooCommerce (Pro)
  • =<3.7.7