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 9 hours ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
Input: synaptics-rmi4 - bound the F30 keymap to the GPIO/LED count

In the Linux kernel, the following vulnerability has been resolved: Input: synaptics-rmi4 - bound the F30 keymap to the GPIO/LED count rmi_f30_map_gpios() allocates gpioled_key_map with min(gpioled_count, TRACKSTICK_RANGE_END) == at most 6 entries, but rmi_f30_attention() iterates the full f30->gpioled_count (device query register, range 0..31) and dereferences gpioled_key_map[i], and input->keycodemax is set to the full gpioled_count while input->keycode points at the 6-entry allocation. A device that reports gpioled_count > 6 with GPIO support enabled therefore causes an out-of-bounds read on the attention interrupt and out-of-bounds read/write through the EVIOCGKEYCODE/EVIOCSKEYCODE ioctls, which bound the index only against keycodemax. This is the same defect as the F3A handler, which was copied from F30. Size the keymap for the full gpioled_count; the mapping loop still assigns only the first min(gpioled_count, TRACKSTICK_RANGE_END) entries.

Affected products

Linux
  • <4e3689c26854356f41fbaa1eafa382e58ac79e00
  • <d577e46785d45484b2ab7e7309c49b18764bf56c
  • <e849c6f51e6877104c765da084e001ec37c8e119
  • <26c895928d7118436a24f564587cb4aefc40cdd8
  • =<6.18.*
  • ==4.14
  • <8c6d18d61bb6fe0e6edf848413391c590552e8a9
  • <4.14
  • =<6.12.*
  • =<7.1.*
  • <f0be9eba946e9200b43265e0a748d38bd0a56954
  • <bfe622efecd4ff0a792d0ecd1a8dce535a902f50
  • =<6.1.*
  • =<6.6.*
  • <d162a1ead7de404d8b41a093c83ed0db6487cded
  • =<5.15.*
  • =<*
  • =<5.10.*
Dismissed
(max. allowed matches exceeded)
created 9 hours ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
io_uring/io-wq: re-check IO_WQ_BIT_EXIT for each linked work item

In the Linux kernel, the following vulnerability has been resolved: io_uring/io-wq: re-check IO_WQ_BIT_EXIT for each linked work item commit 10dc95939817 ("io_uring/io-wq: check IO_WQ_BIT_EXIT inside work run loop") fixed the obvious case where io_worker_handle_work() took one exit-bit snapshot before draining pending work, but the fix stops one level too early. io_worker_handle_work() now re-checks IO_WQ_BIT_EXIT in its outer work run loop, yet it still snapshots that bit once before processing a whole dependent linked-work chain. If io_wq_exit_start() sets IO_WQ_BIT_EXIT after the first linked item has started, the remaining linked items can still reuse stale do_kill = false, skip IO_WQ_WORK_CANCEL, and continue running after exit has begun. Move the check further inside, so it covers linked items too. Note: this is a syzbot special as it loves setting up tons of slow linked work on weird devices like msr that take forever to read, and immediately close the ring. Exit then takes a long time.

Affected products

Linux
  • <5.10.261
  • ==6.19
  • =<7.1.*
  • <b6f179a653a934736c88d820fe0098c3c2532549
  • <29bef9934b2521f787bb15dd1985d4c0d12ae02a
  • =<6.1.*
  • =<5.15.*
  • =<5.10.*
  • <5.15.212
  • <6.12.96
  • <6e2f51f3e06773c2ee98ad09738f0908b48f76f9
  • <6.6.145
  • <1636d85dc139b07c0449308f2bb5e0c7a2e0da99
  • =<6.6.*
  • <6.19
  • <14b7ecad2ec56699325180a744f4b19f046401bb
  • <6.1.178
  • <ea61b04e1d7242cb37f5ed2cc91cf21a493f6597
  • =<6.18.*
  • <d179533c610e1b4c6aa436e3c1fd1b719d2c727c
  • <ab85765cbe3258b43dc6729af0e6ce3a87a133d8
  • =<6.12.*
  • =<*
  • <6.18.39
Dismissed
(max. allowed matches exceeded)
created 9 hours ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
firmware_loader: fix device reference leak in firmware_upload_register()

In the Linux kernel, the following vulnerability has been resolved: firmware_loader: fix device reference leak in firmware_upload_register() firmware_upload_register() -> fw_create_instance() -> device_initialize() After fw_create_instance() succeeds, the lifetime of the embedded struct device is expected to be managed through the device core reference counting, since fw_create_instance() has already called device_initialize(). In firmware_upload_register(), if alloc_lookup_fw_priv() fails after fw_create_instance() succeeds, the code reaches free_fw_sysfs and frees fw_sysfs directly instead of releasing the device reference with put_device(). This may leave the reference count of the embedded struct device unbalanced, resulting in a refcount leak. The issue was identified by a static analysis tool I developed and confirmed by manual review. Fix this by using put_device(fw_dev) in the failure path and letting fw_dev_release() handle the final cleanup, instead of freeing the instance directly from the error path.

Affected products

Linux
  • <2619b47a0c8114eef980a56ade7e3ef4b58eb384
  • <92f41769e5fd16bcd9ba97500d0517332e0a5b45
  • =<6.18.*
  • ==5.19
  • <5.19
  • <517676ec7dfca064e08f94007a4abd21969de0a0
  • =<6.12.*
  • <15432f19562fdb9199cce6d9fc24db12c71ed574
  • =<7.1.*
  • <896df22ee57648b0c505bd76ddbc6b2341834696
  • =<6.1.*
  • =<*
  • =<6.6.*
  • <46d403da376a8b7c1187193294953816e1a8d7fe
Dismissed
(max. allowed matches exceeded)
created 9 hours ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
iommufd: Set upper bounds on cache invalidation entry_num and entry_len

In the Linux kernel, the following vulnerability has been resolved: iommufd: Set upper bounds on cache invalidation entry_num and entry_len iommufd_hwpt_invalidate() takes a user-controlled entry_num and entry_len, each bounded only by U32_MAX. An entry_len beyond the kernel's struct size makes the copy helper verify the extra bytes are zero, scanning that excess in one uninterruptible pass; a multi-gigabyte value over zeroed user memory trips the soft-lockup watchdog. A large entry_num is the other half, driving the backend invalidation loop with no reschedule. The VT-d nested handler, for one, copies each entry and flushes caches per iteration, pinning the CPU on a non-preemptible kernel. Cap both in the ioctl. entry_len is held under PAGE_SIZE, above any request struct, and entry_num under 1 << 19, the order of a hardware invalidation queue and well beyond any real batch, bounding the per-call loop length.

Affected products

Linux
  • <6.8
  • =<6.18.*
  • <32ca4aed2a66205b072fcfecabe220289a8149ff
  • =<6.12.*
  • =<7.1.*
  • <4d70986002f2f3eaaed89124fb2522bded38b016
  • ==6.8
  • =<*
  • <2c6381d90898089287e0a358f06f89f6b4b389f2
  • <d2bd041e0efaf7d81789779b135279d18b33d6d5
Dismissed
(max. allowed matches exceeded)
created 9 hours ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
6lowpan: fix NHC entry use-after-free on error path

In the Linux kernel, the following vulnerability has been resolved: 6lowpan: fix NHC entry use-after-free on error path lowpan_nhc_do_uncompression() looks up an NHC descriptor while holding lowpan_nhc_lock. If the descriptor has no uncompress callback, the error path drops the lock before printing nhc->name. lowpan_nhc_del() removes descriptors under the same lock and then relies on synchronize_net() before the owning module can be unloaded. That only waits for net RX RCU readers. lowpan_header_decompress() is also exported and can be reached from callers that are not necessarily covered by the net core RX critical section, for example the Bluetooth 6LoWPAN L2CAP receive path. This leaves a race where one task drops lowpan_nhc_lock in the error path, another task unregisters and frees the matching descriptor after synchronize_net() returns, and the first task then dereferences nhc->name for the warning. With the post-unlock window widened, KASAN reports: BUG: KASAN: slab-use-after-free in lowpan_nhc_do_uncompression+0x1f4/0x220 Read of size 8 lowpan_nhc_do_uncompression lowpan_header_decompress Fix this by printing the warning before dropping lowpan_nhc_lock, so the descriptor name is read while unregister is still excluded. The malformed packet is still rejected with -ENOTSUPP.

Affected products

Linux
  • <b713aa0cc344f10f7a9928a230b5f5e780d04078
  • <4.1
  • <0beccbcf50de125be5520d0ffc59af4bb8655482
  • <9c2f5c0829a8c8b904dae36be6d8056b719ac605
  • <cc27aea4d454abfb385ee2c9499c78b96db9b728
  • =<6.18.*
  • <593b78bb3c7ef0c6e9ae6fdf5afa80a5f7573168
  • =<6.12.*
  • <80b5c8779acee0550845394fb3e5176a398aa24c
  • <a8e3a94711134e898c6021a6b77374efa91b3639
  • =<7.1.*
  • =<6.1.*
  • =<*
  • <1720db928e5a58ca7d75ac1d514c3b73fd7061a7
  • =<6.6.*
  • =<5.15.*
  • ==4.1
  • =<5.10.*
Dismissed
(max. allowed matches exceeded)
created 9 hours ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
perf/aux: Fix page UAF in map_range()

In the Linux kernel, the following vulnerability has been resolved: perf/aux: Fix page UAF in map_range() map_range() reads rb->aux_pages[], rb->aux_nr_pages and rb->aux_pgoff via perf_mmap_to_page() while holding only event->mmap_mutex. Those fields are serialized by rb->aux_mutex, and mmap_mutex is per event. Thus, two events sharing one rb via PERF_EVENT_IOC_SET_OUTPUT can race rb_alloc_aux() with map_range(), leading to a page-UAF scenario as follows: CPU 0 CPU 1 ===== ===== rb_alloc_aux() map_range() [1]: allocate rb->aux_pages[0] [2]: rb->aux_nr_pages++ [3]: perf_mmap_to_page() returns rb->aux_pages[0] [4]: map it as VM_PFNMAP [5]: rb->aux_pgoff = 1 munmap the page [6]: free rb->aux_pages[0] Pages mapped as VM_PFNMAP have no refcount protection, so CPU 1 holds a mapping to a freed physical frame. Fix this by taking rb->aux_mutex across the page walk in map_range().

Affected products

Linux
  • =<6.18.*
  • <0cff05bd2186020f8706233e261016d149cc24db
  • <c8b7e113f7b61eef2f017e6329c27c2331058c5a
  • =<7.1.*
  • =<*
  • <5948aaf64f81f217a25dcc2bf6c0779bca19566c
  • <6.14
  • ==6.14
Dismissed
(max. allowed matches exceeded)
created 9 hours ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
smb: client: harden POSIX SID length parsing

In the Linux kernel, the following vulnerability has been resolved: smb: client: harden POSIX SID length parsing posix_info_sid_size() reads sid[1] to obtain the subauthority count, but its existing boundary check still accepts buffers with only one remaining byte. Require two bytes before reading sid[1] so all client paths that reuse the helper reject truncated POSIX SIDs safely.

Affected products

Linux
  • <171605aed68380c2fa75dff9b3a1ed427c50065b
  • <96e889bc1e759c83f25093e8c2f3da31b4973f30
  • <46a84715a015cb48e1b9c219dc88c03d8a541ea4
  • =<6.18.*
  • <427eb7eb46425fec845a43e861f3d6e2899cae59
  • <4213c1208978483021d7d125c131de3985d38f61
  • =<6.12.*
  • =<7.1.*
  • <86c5d470f5d42e61123b2f4b4f0b91f4eee5b980
  • ==5.7
  • =<6.1.*
  • =<*
  • =<6.6.*
  • <0de5b8e76847f5de26f364a82c6602c4881c30da
  • <7ad2bcf2441430bb2e918fb3ef9a90d775a6e422
  • =<5.15.*
  • =<5.10.*
  • <5.7
Dismissed
(max. allowed matches exceeded)
created 9 hours ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
ALSA: compress: Fix task creation error unwind

In the Linux kernel, the following vulnerability has been resolved: ALSA: compress: Fix task creation error unwind snd_compr_task_new() allocates the driver task before validating the returned DMA buffers and reserving file descriptors. When either of those later steps fails, the core frees its task wrapper and DMA-buffer references without calling the driver's task_free() callback. Any driver resources allocated by task_create() are therefore leaked. The dual-fd allocation path also jumps to cleanup without storing the negative get_unused_fd_flags() result in retval. Since retval still contains the successful task_create() return value, TASK_CREATE can incorrectly report success although the task was discarded. Preserve the fd allocation errors and call task_free() when failure occurs after a successful task_create() callback.

Affected products

Linux
  • =<6.18.*
  • <6.13
  • <4a60127debb9e370d6c0e22a307326b624a141f3
  • <426a9947a38d272d0e19c031658da68e31128667
  • =<7.1.*
  • =<*
  • ==6.13
  • <b27a75d42044d9d4709095617730b91b1c4af423
Dismissed
(max. allowed matches exceeded)
created 9 hours ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
i2c: imx-lpi2c: mark I2C adapter when hardware is powered down

In the Linux kernel, the following vulnerability has been resolved: i2c: imx-lpi2c: mark I2C adapter when hardware is powered down On some i.MX platforms, certain I2C client drivers keep a periodic workqueue which continues to trigger I2C transfers. During system suspend/resume, there exists a time window between: - suspend_noirq and the system entering suspend - the system starting to resume and resume_noirq In this window, the I2C controller resources such as clock and pinctrl may already be disabled or not yet restored. If a workqueue triggers an I2C transfer in this period, the driver attempts to access I2C registers while the hardware resources are unavailable, which may lead to system hang. Mark the I2C adapter as suspended during noirq suspend and block new transfers until resume, ensuring that I2C transfers are only issued when hardware resources are available.

Affected products

Linux
  • <218cfe364b55b2768221629bd4a69ad190b7fbbc
  • =<6.18.*
  • <5800647d19d3f1f747fda4dc67e55d6afa6ee119
  • =<7.1.*
  • =<*
  • <b2523f26979e0b5bd1422772176b2233fcd1f6d0
  • <6.14
  • ==6.14
Dismissed
(max. allowed matches exceeded)
created 9 hours ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
KVM: SEV: Pin source page for write when adding CPUID data for SNP guest

In the Linux kernel, the following vulnerability has been resolved: KVM: SEV: Pin source page for write when adding CPUID data for SNP guest When populating a guest_memfd instance with the initial CPUID data for an SNP guest, acquire a writable pin on the source page as KVM will write back the "correct" CPUID information if the userspace provided data is rejected by trusted firmware. Because KVM writes to the source page using a kernel mapping, pinning for read could result in KVM clobbering read-only memory. Note, well-behaved VMMs are unlikely to be affected, as CPUID information is almost always dynamically generated by userspace, i.e. it's unlikely for the CPUID information to be backed by a read-only mapping. [sean: rewrite shortlog and changelog, tag for stable@]

Affected products

Linux
  • <7.0
  • <dcdb476f5fc5701ec06c23efe3e3529f07ca391e
  • <f13e900599089b10113ceb36013423f0837c6792
  • =<7.1.*
  • =<*
  • ==7.0