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
netfilter: revalidate bridge ports

In the Linux kernel, the following vulnerability has been resolved: netfilter: revalidate bridge ports ebt_redirect_tg() dereferences br_port_get_rcu() return without a NULL check, causing a kernel panic when the bridge port has been removed between the original hook invocation and an NFQUEUE reinject. A mere NULL check isn't sufficient, however. As sashiko review points out userspace can not only remove the port from the bridge, it could also place the device in a different virtual device, e.g. macvlan. If this happens, we must drop the packet, there is no way for us to reinject it into the bridge path. Switch to _upper API, we don't need the bridge port structure. Also, this fix keeps another bug intact: Both nfnetlink_log and nfnetlink_queue use CONFIG_BRIDGE_NETFILTER too aggressive, which prevents certain logging features when queueing in bridge family: NETFILTER_FAMILY_BRIDGE can be enabled while the old CONFIG_BRIDGE_NETFILTER cruft is off. Fixes tag is a common ancestor, this was always broken.

Affected products

Linux
  • =<*
  • <4beffcd726e2a731cea4dc18e1fbc55c8d76f1a0
  • <d4b1301fd3c9e5e105fd3767c68bc4ba558bb228
  • <ccb9fd4b87538ccf19ccff78ee26700526d94867
  • =<6.18.*
  • =<7.0.*
  • ==2.6.36
  • <2.6.36
  • =<6.12.*
  • <43330a1e8aace6b5a8de9aba127e9e394ab49b0f
Dismissed
(max. allowed matches exceeded)
created 1 month ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
ALSA: timer: Fix UAF at snd_timer_user_params()

In the Linux kernel, the following vulnerability has been resolved: ALSA: timer: Fix UAF at snd_timer_user_params() At releasing a timer object, e.g. when a userspace timer (CONFIG_SND_UTIMER) gets closed and snd_timer_free() is called, it tries to detach the timer instances and release the resources. However, it's still possible that other in-flight tasks are holding the timer instance where the to-be-deleted timer object is associated, and this may lead to racy accesses. Fortunately, most of ioctls dealing with the timer instance list already have the protection with register_mutex, and this also avoids such races. But, SNDRV_TIMER_IOCTL_PARAMS isn't protected, hence the concurrent ioctl may lead to use-after-free. This patch just adds the guard with register_mutex to protect snd_timer_user_params() for covering the code path as a quick workaround. It's no hot-path but rather a rarely issued ioctl, so the performance penalty doesn't matter.

Affected products

Linux
  • =<5.15.*
  • =<*
  • <e2331730175f74169046d2af8db1b47243df7c7a
  • <6.6.143
  • =<5.10.*
  • <6.18.36
  • <3d39da65b5c422c5e5afb7d5651b0698d060a827
  • <117743d62e1225e208568a3ffc2c07214f1347cb
  • <306427adf9b97e29e5958cb9cf3096c6151fc9ff
  • <7.0.13
  • =<6.1.*
  • =<6.18.*
  • <053a401b592be424fea9d57c789f66cd5d8cec11
  • <5.10.259
  • =<6.12.*
  • <38034d04d4a75bbca01df2b313ced0bcd0fa3242
  • <5.15.210
  • <6.1.176
  • <6.12.94
  • <b2214914e461d0466548a52dfe4f4ee8ce362276
  • <92ad2d7f80cad43b046f093e808e11fe919d304a
  • =<7.0.*
  • =<6.6.*
Dismissed
(max. allowed matches exceeded)
created 1 month ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
futex/requeue: Prevent NULL pointer dereference in remove_waiter() on self-deadlock

In the Linux kernel, the following vulnerability has been resolved: futex/requeue: Prevent NULL pointer dereference in remove_waiter() on self-deadlock When FUTEX_CMP_REQUEUE_PI requeues a non-top waiter that already owns the target PI futex, task_blocks_on_rt_mutex() returns -EDEADLK before setting waiter->task. The subsequent remove_waiter() in rt_mutex_start_proxy_lock() dereferences the NULL waiter->task, causing a kernel crash. Add a self-deadlock check for non-top waiters before calling rt_mutex_start_proxy_lock(), analogous to the top-waiter check in futex_lock_pi_atomic().

Affected products

Linux
  • <1f2f3f3eacd6653ab215c5d2ea70811148d433fc
  • <6.2
  • <6.13
  • <7.0.13
  • <74e144274af39935b0f410c0ee4d2b91c3730414
  • ==6d52dfcb2a5db86e346cf51f8fcf2071b8085166
  • <6.18.36
  • <16f8e17184b31382076f84751db5ac51fc02733e
  • ==8a1fc8d698ac5e5916e3082a0f74450d71f9611f
  • <6.7
  • ==d8cce4773c2b23d819baf5abedc62f7b430e8745
Dismissed
(max. allowed matches exceeded)
created 1 month ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
nvmem: core: fix use-after-free bugs in error paths

In the Linux kernel, the following vulnerability has been resolved: nvmem: core: fix use-after-free bugs in error paths Fix several instances of error paths in which we call __nvmem_device_put() - which may end up freeing the underlying memory and other resources - and then keep on using the nvmem structure. Always put the reference to the nvmem device as the last step before returning the error code.

Affected products

Linux
  • <40e2a459c0dd1333b2343831480a0ad80dc07614
  • =<*
  • ==4.20
  • =<6.18.*
  • =<7.0.*
  • <4.20
  • <cb85ef5a227b3662b88f4d849a1aad43bfe7f5ae
  • =<6.12.*
  • <e0d38bf47a72da2f02c9fa6f752cd66d977cd7f7
  • <5b6b6fc491899d583eaa75344e094796ae9b530b
Dismissed
(max. allowed matches exceeded)
created 1 month ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
VFS: fix possible failure to unlock in nfsd4_create_file()

In the Linux kernel, the following vulnerability has been resolved: VFS: fix possible failure to unlock in nfsd4_create_file() atomic_create() in fs/namei.c drops the reference to the dentry when it returns an error. This behaviour was imported into dentry_create() so that it will drop the reference if an error is returned from atomic_create(), though not if vfs_create() returns an error (in the case where ->atomic_create is not supported). The caller - nfsd4_create_file() - is made aware of this by checking path->dentry, which will either be a counted reference to a dentry, or an error pointer. However the change to use start_creating()/end_creating() (which landed shortly before the dentry_create() change landed, though was likely developed around the same time) means that nfsd4_create_file() *needs* a valid dentry so that it can unlock the parent. The net result is that if NFSD exports a filesystem which uses ->atomic_create, and if a call to ->atomic_create returns an error, then nfsd4_create_file() will pass an error pointer to end_creating() and the parent will not be unlocked. Fix this by changing dentry_create() to make sure path->dentry is always a valid dentry, never an error-pointer. The actual error is already returned a different way. Note that if ->atomic_create() returns a different dentry (which may not be possible in practice) we are guaranteed (because it is only ever provided by d_spliace_alias()) that it will have the same d_parent and so it will have the same effect when passed to end_creating().

Affected products

Linux
  • <7.0
  • =<*
  • =<7.0.*
  • <e824bbd4d224cce4b5fb59cc9dcd3447fe0b7e44
  • ==7.0
  • <ee1f40759a50b1800c98c1c369afd5b3e44ad987
Dismissed
(max. allowed matches exceeded)
created 1 month ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
mm/memory-failure: fix hugetlb_lock AA deadlock in get_huge_page_for_hwpoison

In the Linux kernel, the following vulnerability has been resolved: mm/memory-failure: fix hugetlb_lock AA deadlock in get_huge_page_for_hwpoison Two concurrent madvise(MADV_HWPOISON) calls on the same hugetlb page can trigger a recursive spinlock self-deadlock (AA deadlock) on hugetlb_lock when racing with a concurrent unmap: thread#0 thread#1 -------- -------- madvise(folio, MADV_HWPOISON) -> poisons the folio successfully madvise(folio, MADV_HWPOISON) unmap(folio) try_memory_failure_hugetlb get_huge_page_for_hwpoison spin_lock_irq(&hugetlb_lock) <- held __get_huge_page_for_hwpoison hugetlb_update_hwpoison() -> MF_HUGETLB_FOLIO_PRE_POISONED goto out: folio_put() refcount: 1 -> 0 free_huge_folio() spin_lock_irqsave(&hugetlb_lock) -> AA DEADLOCK! The out: path in __get_huge_page_for_hwpoison() calls folio_put() to drop the GUP reference while the hugetlb_lock is still held by the hugetlb.c wrapper get_huge_page_for_hwpoison(). If concurrent unmap has released the page table mapping reference, folio_put() drops the folio refcount to zero, triggering free_huge_folio() which attempts to re-acquire the non-recursive hugetlb_lock. Fix this by moving hugetlb_lock acquisition from the hugetlb.c wrapper into get_huge_page_for_hwpoison(). Place spin_unlock_irq() before the folio_put() at the out: label so the folio is always released outside the lock. [akpm@linux-foundation.org: fix race, rename label per Miaohe]

Affected products

Linux
  • =<*
  • <bf7ba8f96c258c30393814491930ae4ecdc5fe5e
  • <5.16
  • ==62d1655b922958826b7ec22682c3141746f75064
  • =<6.1.*
  • =<6.6.*
  • =<6.18.*
  • <fc3ff42cb0cbf947e4600ae9761c3783760050e2
  • <a33bfed648c10f5a1519981dbfad80841191edc8
  • =<7.0.*
  • <5.18
  • =<6.12.*
  • <77b73b54801ae7137479c141fd0473a491c1dc48
  • ==5.18
  • <3c2d42b8ee345b17a4ba56b0f6492d1ff4c1178e
  • <dd77a83915b07e2b0205adb284f08b39ae31dc4b
Dismissed
(max. allowed matches exceeded)
created 1 month ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
KVM: arm64: nv: Fix handling of XN[0] when !FEAT_XNX

In the Linux kernel, the following vulnerability has been resolved: KVM: arm64: nv: Fix handling of XN[0] when !FEAT_XNX XN has already been extracted from its bitfield position so using FIELD_PREP() on the mask that clears XN[0] is completely broken, having the effect of unconditionally granting execute permissions... Fix the obvious mistake by manipulating the right bit.

Affected products

Linux
  • =<*
  • =<7.0.*
  • <6.19
  • <b95976c2ea446044553a5f469c0bae13553d75ab
  • <49b32ddb87a3a109afecea89e55d70f73956b8bc
  • ==6.19
Dismissed
(max. allowed matches exceeded)
created 1 month ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
ipv6: Fix a potential NPD in cleanup_prefix_route()

In the Linux kernel, the following vulnerability has been resolved: ipv6: Fix a potential NPD in cleanup_prefix_route() addrconf_get_prefix_route() can return the fib6_null_entry sentinel entry which has a NULL fib6_table pointer. Therefore, before setting the route's expiration time, check that we are not working with this entry, as otherwise a NPD will be triggered [1]. Note that the other callers of addrconf_get_prefix_route() are not susceptible to this bug: 1. addrconf_prefix_rcv(): Requests a route with the 'RTF_ADDRCONF | RTF_PREFIX_RT' flags which are not set on fib6_null_entry. 2. modify_prefix_route(): Fixed by commit a747e02430df ("ipv6: avoid possible NULL deref in modify_prefix_route()"). 3. __ipv6_ifa_notify(): Calls ip6_del_rt() which specifically checks for fib6_null_entry and returns an error. [1] Oops: general protection fault, probably for non-canonical address 0xdffffc0000000006: 0000 [#1] SMP KASAN KASAN: null-ptr-deref in range [0x0000000000000030-0x0000000000000037] [...] Call Trace: <TASK> __kasan_check_byte (mm/kasan/common.c:573) lock_acquire.part.0 (kernel/locking/lockdep.c:5842 (discriminator 1)) _raw_spin_lock_bh (kernel/locking/spinlock.c:182 (discriminator 1)) cleanup_prefix_route (net/ipv6/addrconf.c:1280) ipv6_del_addr (net/ipv6/addrconf.c:1342) inet6_addr_del.isra.0 (net/ipv6/addrconf.c:3119) inet6_rtm_deladdr (net/ipv6/addrconf.c:4812) rtnetlink_rcv_msg (net/core/rtnetlink.c:6997) netlink_rcv_skb (net/netlink/af_netlink.c:2555) netlink_unicast (net/netlink/af_netlink.c:1344) netlink_sendmsg (net/netlink/af_netlink.c:1899) __sock_sendmsg (net/socket.c:802 (discriminator 4)) ____sys_sendmsg (net/socket.c:2698) ___sys_sendmsg (net/socket.c:2752) __sys_sendmsg (net/socket.c:2784) do_syscall_64 (arch/x86/entry/syscall_64.c:63 arch/x86/entry/syscall_64.c:94) entry_SYSCALL_64_after_hwframe (arch/x86/entry/entry_64.S:121)

Affected products

Linux
  • <07d9a0870a178843cea44cfd58c27445dc94cf5f
  • =<*
  • =<6.18.*
  • <6.6.143
  • <192df376a05c2db15564640f9da7e20907c1fa24
  • <6.9
  • =<7.0.*
  • ==6.9
  • <5f82b02b4059ddc06e4fcfd057bfb59fd6885cd2
  • =<6.12.*
  • <b70c687b7cf267fb08586667a3946c8851cad672
  • =<6.6.*
  • <653a2849305708f75260b5296f17b2a759ff9cc7
Dismissed
(max. allowed matches exceeded)
created 1 month ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
l2tp: pppol2tp: hold reference to session in pppol2tp_ioctl()

In the Linux kernel, the following vulnerability has been resolved: l2tp: pppol2tp: hold reference to session in pppol2tp_ioctl() pppol2tp_ioctl() read sock->sk->sk_user_data directly without any locks or reference counting. If a controllable sleep was induced during copy_from_user() (e.g. via a userfaultfd page fault sleep), a concurrent socket close could trigger pppol2tp_session_close() asynchronously. This frees the l2tp_session structure via the l2tp_session_del_work workqueue. Upon resuming, the ioctl thread dereferences the stale session pointer, resulting in a Use-After-Free (UAF). Fix this by securely fetching the session reference using the RCU-safe, refcounted helper pppol2tp_sock_to_session(sk) on entry. This locks the session's refcount across the sleep. We structured the function to exit via standard err breaks, guaranteeing that l2tp_session_put() is cleanly called on all return paths to drop the reference. To preserve existing behavior we validate the session and its magic signature only for the specific L2TP commands that require it. This ensures that generic/unknown ioctls called on an unconnected socket still return -ENOIOCTLCMD and correctly fall back to generic handlers (e.g. in sock_do_ioctl()).

Affected products

Linux
  • =<*
  • <e251d4cdfc725c9e7d686161e3b775a0e7d95053
  • <62f327e287cf7b595ae3f73ba72f5cd2a9e9f39f
  • <a213a8950414c684999dcf03edeea6c46ede172e
  • <2.6.35
  • ==2.6.35
  • =<6.18.*
  • =<7.0.*
  • <78cdfdca88cbf731a92f3b9ee5427c633dd94e28
  • =<6.12.*
Dismissed
(max. allowed matches exceeded)
created 1 month ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
drm/amd/display: Bound VBIOS record-chain walk loops

In the Linux kernel, the following vulnerability has been resolved: drm/amd/display: Bound VBIOS record-chain walk loops [Why & How] All record-chain walk loops in bios_parser.c and bios_parser2.c use for(;;) and only terminate on a 0xFF record_type sentinel or zero record_size. A malformed VBIOS image missing the terminator record causes unbounded iteration at probe time, potentially hundreds of thousands of iterations with record_size=1. In the final iterations near the BIOS image boundary, struct casts beyond the 2-byte header validated by GET_IMAGE can also read out of bounds. Cap all 14 record-chain walk loops to BIOS_MAX_NUM_RECORD (256) iterations. The atombios.h defines up to 22 distinct record types and atomfirmware.h has 13. Assuming an average of less than 10 records per type (which is reasonable since most are connector- based) 256 is a generous upper bound. (cherry picked from commit 95700a3d660287ed657d6892f7be9ffc0e294a93)

Affected products

Linux
  • =<*
  • <0e56f460bddb397fa9a8e6faf7ae7eaa86953eb1
  • <4.15
  • =<6.18.*
  • <2645e3caf7e013189da9c6ff621d006cca5a538b
  • =<7.0.*
  • ==4.15
  • =<6.12.*
  • <6173cfea2f916e01c4f98e29cd654384a05e32a3
  • <ff287df16a1a58aca78b08d1f3ee09fc44da0351