Nixpkgs security tracker

Login with GitHub
⚠️ You are using a production deployment that is still only suitable for demo purposes. Any work done in this might be wiped later without notice.

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, 1 week ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
drm/xe/gsc: Fix double-free of managed BO in error path

In the Linux kernel, the following vulnerability has been resolved: drm/xe/gsc: Fix double-free of managed BO in error path The error path in xe_gsc_init_post_hwconfig() explicitly frees a BO allocated with xe_managed_bo_create_pin_map() via xe_bo_unpin_map_no_vm(). Since the managed BO already has a devm cleanup action registered, this causes a double-free when devm unwinds during probe failure. Remove the explicit free and let devm handle it, consistent with all other xe_managed_bo_create_pin_map() callers. (cherry picked from commit 71d61e3e299a17139e47f980a4d6f425b2c59bf7)

Affected products

Linux
  • ==6.12
  • <6.12
  • <7cb975fcd4777e7bad688f66aa0c10c16dd8276b
  • =<6.12.*
  • =<7.0.*
  • =<6.18.*
  • <889f70de2b51a877339e1979aab95111b41bed75
  • <2c890e71ae26fa32f5a96c3694b71a2c310940e7
  • =<*
  • <d3ded53fab90996e7d94a39049e11962dd066725
Dismissed
(max. allowed matches exceeded)
created 1 month, 1 week ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
smb/client: fix chown/chgrp with SMB3 POSIX Extensions

In the Linux kernel, the following vulnerability has been resolved: smb/client: fix chown/chgrp with SMB3 POSIX Extensions Ownership (chown) and group (chgrp) modifications were being ignored when mounting with SMB3 POSIX Extensions unless CIFS_MOUNT_CIFS_ACL or CIFS_MOUNT_MODE_FROM_SID were also explicitly set. Fix this by checking for posix_extensions in cifs_setattr_nounix() when updating UID and GID, ensuring that id_mode_to_cifs_acl() is called to map and set the ownership/group information on the server.

Affected products

Linux
  • <760ef2c579c2609cf17fb1cd5392f64d42d43d33
  • =<*
  • <7.1.4
  • =<7.1.*
  • <550cfb8a81181331d4d0f76ab75ee58a0bf41e3e
Dismissed
(max. allowed matches exceeded)
created 1 month, 1 week ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
netfilter: ebtables: zero chainstack array

In the Linux kernel, the following vulnerability has been resolved: netfilter: ebtables: zero chainstack array sashiko reports: looking at ebtables table translation, could a sparse cpu_possible_mask lead to an uninitialized pointer free? If cpu_possible_mask is sparse (for example, CPU 0 and CPU 2 are possible, but CPU 1 is not), the allocation loop skips CPU 1. If vmalloc_node() fails at CPU 2, the cleanup loop will blindly decrement and call vfree() on newinfo->chainstack[1]. Not a real-world bug, such allocation isn't expected to fail in the first place.

Affected products

Linux
  • <2ade612967e2cdfb9290ebcb773f302c82f311fa
  • <fc7f105451044501a50cfd530cfa3b472c54acbc
  • <9e6c5169db423e51dcc66a73fd15409c0d38e088
  • <cbfe53599eebffd188938ab6774cc41794f6f9d5
  • <5ee856e4208acafaaaf7b84824d39b78c21345d6
  • <9f74d28e903fa4fdf82f870d0aeadddc8196e41c
  • =<6.1.*
  • <2.6.12
  • ==2.6.12
  • <42bef500d07b5769d916e9122a3e3fa3fd2245ef
  • =<5.10.*
  • =<6.12.*
  • =<*
  • =<6.18.*
  • =<5.15.*
  • =<6.6.*
  • <29bf41a9b59aff9f6197df58641a00037d567ca8
  • =<7.1.*
Dismissed
(max. allowed matches exceeded)
created 1 month, 1 week ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
wifi: mac80211: fix MLE defragmentation

In the Linux kernel, the following vulnerability has been resolved: wifi: mac80211: fix MLE defragmentation If either reconf or EPCS multi-link element (MLE) is contained in a non-transmitted profile, the defragmentation routine is called with a pointer to the defragmented copy, but the original elements. This is incorrect for two reasons: - if the original defragmentation was needed, it will not find the correct data - if the original frame is at a higher address, the parsing will potentially overrun the heap data (though given the layout of the buffers, only into the new defragmentation buffer, and then it has to stop and fail once that's filled with copied data. Fix it by tracking the container along with the pointer and in doing so also unify the two almost identical defragmentation routines.

Affected products

Linux
  • <a74e893f30db64cdce0fc7a96d3baa417bcd55f5
  • <722b3f86df80644463d29fe5451e30a617f74500
  • =<*
  • <6.9
  • <55c479aae99b120489a432db9c717484e523dfd6
  • =<6.18.*
  • ==6.9
  • =<7.0.*
  • =<6.12.*
  • <1f573e17bcb7275ddd1c8f47f46ae0faf0e902a4
Dismissed
(max. allowed matches exceeded)
created 1 month, 1 week ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
staging: media: ipu7: fix double-free and use-after-free in error paths

In the Linux kernel, the following vulnerability has been resolved: staging: media: ipu7: fix double-free and use-after-free in error paths In both ipu7_isys_init() and ipu7_psys_init(), pdata is allocated and then passed to ipu7_bus_initialize_device(), which stores it in adev->pdata. The ipu7_bus_release() function frees adev->pdata when the device's reference count drops to zero. Two error paths incorrectly call kfree(pdata) after the device teardown has already freed it: 1. When ipu7_mmu_init() fails: put_device() is called, which drops the reference count to zero and triggers ipu7_bus_release() -> kfree(pdata). The subsequent kfree(pdata) is a double-free. 2. When ipu7_bus_add_device() fails: it calls auxiliary_device_uninit() internally, which calls put_device() -> ipu7_bus_release() -> kfree(pdata). The subsequent kfree(pdata) is again a double-free. Note that the kfree(pdata) when ipu7_bus_initialize_device() itself fails is correct, because in that case auxiliary_device_init() failed and the release function was never set up, so pdata must be freed manually. Additionally, the error code was not saved before calling put_device(), causing ERR_CAST() to dereference the already-freed adev pointer when constructing the return value. Fix this by saving the error from dev_err_probe() before put_device() and returning ERR_PTR() instead. Remove the redundant kfree(pdata) calls and fix the use-after-free in the return values of the two affected error paths.

Affected products

Linux
  • ==6.17
  • <6.17
  • <837c1f9655421055f751ed34745e820a54a27642
  • =<7.1.*
  • =<*
  • =<6.18.*
  • <d3a9a8cf2d7fd61a2f63df61f6cbc0a9bb007cc0
  • <b5ddc7257bee71f5b8cf9083e2b0ac0427e9fbb3
Dismissed
(max. allowed matches exceeded)
created 1 month, 1 week ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
Bluetooth: btusb: fix use-after-free on marvell probe failure

In the Linux kernel, the following vulnerability has been resolved: Bluetooth: btusb: fix use-after-free on marvell probe failure Make sure to stop any TX URBs submitted during Marvell OOB wakeup configuration on later probe failures to avoid use-after-free in the completion callback. This issue was reported by Sashiko while reviewing a fix for a wakeup source leak in the btusb probe errors paths.

Affected products

Linux
  • <0ccb1cb0a464dab78284c34196cd3e8e18bab4c4
  • =<6.1.*
  • <4.11
  • <838c917a2f16eefe68def800ebf48a2af591149a
  • =<7.1.*
  • =<*
  • =<5.15.*
  • <92c736866244340497a8a65afe2ac25354c2bf5e
  • =<5.10.*
  • ==4.11
  • <6e1b10df890f4663cb38af9fc1c93d36747b75af
  • <1edd524de5cc8143ece9c42c466346983dc5b5ed
  • =<6.18.*
  • =<6.6.*
  • =<6.12.*
  • <631de465aba7f8ae46478bf5f598111412e8eff8
  • <c5b600a3c05b1a7a110d558df935a8fc8a471c79
  • <a7e941a395711791c7e98d9870c6562c2c9e9ef2
Dismissed
(max. allowed matches exceeded)
created 1 month, 1 week 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
  • <5aa1cb01155f96824003baf7997cdf1f150caba3
  • <367c42a611fe488b7b03f1f6737f4dee0e8b20a2
  • <463bbd79698513af4dad50fe1c573825f297ca2e
  • <d20d1c8ba5765d1d12eefc0aee6385ab3f240e1e
  • =<6.1.*
  • <6.1.178
  • =<7.1.*
  • <6.18.39
  • <7.1.4
  • =<*
  • =<6.18.*
  • <6.12.96
  • <7703fd9aba1f2483c8e55f9ff73b7663e0761ed9
  • <6.6.145
  • =<6.6.*
  • =<6.12.*
  • <5c75275c0fc9a2deb0d8f5604edcb16f288171c8
Dismissed
(max. allowed matches exceeded)
created 1 month, 1 week ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
vfio/pci: Latch disable_idle_d3 per device

In the Linux kernel, the following vulnerability has been resolved: vfio/pci: Latch disable_idle_d3 per device When disable_idle_d3 was introduced in vfio-pci, it directly manipulated the device power state with pci_set_power_state(). There were no refcounts to maintain or balanced operations, we could unconditionally bring the device to D0 and conditionally move it to D3hot. Therefore the module parameter was made writable. Later, in commit c61302aa48f7 ("vfio/pci: Move module parameters to vfio_pci.c"), as part of the vfio-pci-core split, the writable aspect of the module parameter was nullified. The parameter value could still be changed through sysfs, but the vfio-pci driver latched the values into vfio-pci-core globals at module init. Loading the vfio-pci module, or unloading and reloading, with non-default or different values could change the globals relative to existing devices bound to vfio-pci variant drivers. Runtime PM was introduced in commit 7ab5e10eda02 ("vfio/pci: Move the unused device into low power state with runtime PM"), which marks the point where power states became refcounted. PM get and put operations need to be balanced, but the same module operations noted above can change the global variables relative to those devices already bound to vfio-pci variant drivers. This introduces a window where PM operations can now become unbalanced. To resolve this with a narrow footprint for stable backports, the disable_idle_d3 flag is latched into the vfio_pci_core_device at the time of initialization, such that the device always operates with a consistent value. NB. vfio_pci_dev_set_try_reset() now unconditionally raises the runtime PM usage count around bus reset to account for disable_idle_d3 becoming a per-device rather than global flag. When this flag is set, the additional get/put pair is harmless and allows continued use of the shared vfio_pci_dev_set_pm_runtime_get() helper.

Affected products

Linux
  • <5.19
  • <332d785f9ae426eeeb92527872adf09d84101ba3
  • <b98296816d31441b307ef9fa8670dcf5a55e5505
  • ==5.19
  • =<6.1.*
  • <062b820290bcb9778e43a73597df76e9bb08acfb
  • <654710ef3135c4546b20a903bc23a51b0c44d6c8
  • =<7.1.*
  • =<*
  • =<6.18.*
  • =<6.6.*
  • =<6.12.*
  • <4575e9aac5336d1365138c0284773bf8da4b1fa3
  • <f6c67cf0051f96ba61d186731d3d9409b9927db2
Dismissed
(max. allowed matches exceeded)
created 1 month, 1 week ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
nvmet-auth: validate reply message payload bounds against transfer length

In the Linux kernel, the following vulnerability has been resolved: nvmet-auth: validate reply message payload bounds against transfer length nvmet_auth_reply() accesses the variable-length rval[] array using attacker-controlled hl (hash length) and dhvlen (DH value length) fields without verifying they fit within the allocated buffer of tl bytes. A malicious NVMe-oF initiator can craft a DHCHAP_REPLY message with a small transfer length but large hl/dhvlen values, causing out-of-bounds heap reads when the target processes the DH public key (rval + 2*hl) or performs the host response memcmp. With DH authentication configured, the OOB pointer is passed directly to sg_init_one() and read by crypto_kpp_compute_shared_secret(), reaching up to 526 bytes past the buffer. This is exploitable pre-authentication. Add bounds validation ensuring sizeof(*data) + 2*hl + dhvlen <= tl before any access to the variable-length fields. Discovered by Atuin - Automated Vulnerability Discovery Engine.

Affected products

Linux
  • <caa71b3a43ea5c13fe7141cb019ebcb03b8ac857
  • <999f6205ede984a786f35f727b01f971b98e215d
  • =<7.1.*
  • <80cd28b56ab62d3e7ed0a7bf05282e6d3ee5b2a0
  • =<*
  • =<6.18.*
  • <6d7649c1231dac14d906985d2936967e23041c26
  • =<6.6.*
  • =<6.12.*
  • <3a413ece2504c70aa34a20be4dafec04e8c741f9
  • ==6.0
  • <6.0
Dismissed
(max. allowed matches exceeded)
created 1 month, 1 week ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
iio: temperature: tmp006: use devm_iio_trigger_register

In the Linux kernel, the following vulnerability has been resolved: iio: temperature: tmp006: use devm_iio_trigger_register tmp006_probe() allocates the DRDY trigger with devm_iio_trigger_alloc() but registers it with plain iio_trigger_register(). The driver has no .remove() callback, so on module unload the trigger stays in the global trigger list while its memory is freed by devm, leaving a dangling entry. Switch to devm_iio_trigger_register() so the registration is undone in the same devm scope as the allocation.

Affected products

Linux
  • ==6.13
  • <a4f8491da9563ba6eb77969ac26fc7052114c476
  • <6.13
  • =<7.1.*
  • =<*
  • =<6.18.*
  • <3c5eed894efd93d68d7f6a359a81ddef0e928774
  • <d90f868f56a16e10eedc6552f48d99dff4d275b7