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 2 months, 1 week ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
vrf: Fix a potential NPD when removing a port from a VRF

In the Linux kernel, the following vulnerability has been resolved: vrf: Fix a potential NPD when removing a port from a VRF RCU readers that identified a net device as a VRF port using netif_is_l3_slave() assume that a subsequent call to netdev_master_upper_dev_get_rcu() will return a VRF device. They then continue to dereference its l3mdev operations. This assumption is not always correct and can result in a NPD [1]. There is no RCU synchronization when removing a port from a VRF, so it is possible for an RCU reader to see a new master device (e.g., a bridge) that does not have l3mdev operations. Fix by adding RCU synchronization after clearing the IFF_L3MDEV_SLAVE flag. Skip this synchronization when a net device is removed from a VRF as part of its deletion and when the VRF device itself is deleted. In the latter case an RCU grace period will pass by the time RTNL is released. [1] BUG: kernel NULL pointer dereference, address: 0000000000000000 [...] RIP: 0010:l3mdev_fib_table_rcu (net/l3mdev/l3mdev.c:181) [...] Call Trace: <TASK> l3mdev_fib_table_by_index (net/l3mdev/l3mdev.c:201 net/l3mdev/l3mdev.c:189) __inet_bind (net/ipv4/af_inet.c:499 (discriminator 3)) inet_bind_sk (net/ipv4/af_inet.c:469) __sys_bind (./include/linux/file.h:62 (discriminator 1) ./include/linux/file.h:83 (discriminator 1) net/socket.c:1951 (discriminator 1)) __x64_sys_bind (net/socket.c:1969 (discriminator 1) net/socket.c:1967 (discriminator 1) net/socket.c:1967 (discriminator 1)) do_syscall_64 (arch/x86/entry/syscall_64.c:63 (discriminator 1) arch/x86/entry/syscall_64.c:94 (discriminator 1)) entry_SYSCALL_64_after_hwframe (arch/x86/entry/entry_64.S:130)

Affected products

Linux
  • <468defa0b70902a22f4478c1207624bc1b31c124
  • <a7a97f2303e63ede105c1d55ef53dc497364e11d
  • =<6.1.*
  • ==4.12
  • <8c2b792f04a3db97c9d8d2a45817e93f8884baf5
  • <3db8d078f7f652379ee394132b169d304f6eb4c1
  • =<*
  • =<5.15.*
  • =<5.10.*
  • =<6.18.*
  • <4ab6fc60ed5a0344b60711b09bff1dc238d8d6a4
  • =<7.0.*
  • =<6.6.*
  • =<6.12.*
  • <2674d603a9e6970463b2b9ebcf8e31e90beae169
  • <d47204c127992da0c976ac9747070a575912e0fe
  • <2c022f582fd16a470df6ed9e7fb7e9fc48946d49
  • <4.12
Dismissed
(max. allowed matches exceeded)
created 2 months, 1 week ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
sctp: diag: reject stale associations in dump_one path

In the Linux kernel, the following vulnerability has been resolved: sctp: diag: reject stale associations in dump_one path The SCTP exact sock_diag lookup can hold a transport reference, block on lock_sock(sk), and then resume after sctp_association_free() has marked the association dead and freed its bind address list. When that happens, inet_assoc_attr_size() and inet_diag_msg_sctpasoc_fill() can still dereference association state that is no longer valid for reporting. In particular, inet_diag_msg_sctpasoc_fill() may read an empty bind-address list as a real sctp_sockaddr_entry and trigger an out-of-bounds read from unrelated association memory. Reject the association after taking the socket lock if it has been reaped or detached from the endpoint, and report the lookup as stale. This keeps the exact dump-one path from formatting torn association state.

Affected products

Linux
  • <b2be72d401833194917e44fbd8d8144bb4f2db16
  • <e97c2a535e23ed0fdd2660993fb3f10d9535c9bc
  • <5eba3e48d78edd7551b992cb7ba687019b3a78da
  • =<*
  • =<6.1.*
  • =<5.15.*
  • =<5.10.*
  • ==4.7
  • =<6.18.*
  • <4.7
  • <480f754580b5686b928977d16a59f20cef83ff01
  • =<6.6.*
  • =<6.12.*
  • =<7.0.*
  • <5425de8bd6e9fe5bd67d158e3348171ae7510117
  • <78c4f964b2f94e405721c093773f6250e1e676b2
  • <f5af203dec6e0e7a6090fcc2130e9f3901bfc84d
  • <6657af827e21883ae90693e42e7f59a6aab690b5
Dismissed
(max. allowed matches exceeded)
created 2 months, 1 week ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
netfilter: nf_queue: hold bridge skb->dev while queued

In the Linux kernel, the following vulnerability has been resolved: netfilter: nf_queue: hold bridge skb->dev while queued br_pass_frame_up() rewrites skb->dev from the ingress port to the bridge master before queueing bridge LOCAL_IN packets. NFQUEUE only holds references on state.in/out and bridge physdevs, so a queued bridge packet can retain a freed bridge master in skb->dev until reinjection. When the verdict is reinjected later, br_netif_receive_skb() re-enters the receive path with skb->dev still pointing at the freed bridge master, triggering a use-after-free. Store skb->dev in the queue entry, hold a reference on it for the queue lifetime, and use the saved device when dropping queued packets during NETDEV_DOWN handling.

Affected products

Linux
  • <e196115ec330a18de415bdb9f5071aa9f08e53ce
  • <950d809f154dca04e5fbe5d3c8b9c5e44769cd57
  • =<6.1.*
  • <1e5e20031c5eee8d2e490a90ff4d6a2feecfc3be
  • =<*
  • =<5.15.*
  • =<5.10.*
  • <a698ac8ab2561cf575d2d9f34095032651dd952e
  • ==4.7
  • <4.7
  • <3823c27099cfe2482299065814adbaa771be9644
  • =<6.18.*
  • <19924bdd8a45ebc72a7b84c57fd63057d1dc75ac
  • <15d464265120ab9818bd673af301deee09bedab2
  • <3fb0f5c0f64162a8c3f25616a4f1e340b921737f
  • =<6.6.*
  • =<6.12.*
  • =<7.0.*
Dismissed
(max. allowed matches exceeded)
created 2 months, 1 week ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
crypto: ccp - copy IV using skcipher ivsize

In the Linux kernel, the following vulnerability has been resolved: crypto: ccp - copy IV using skcipher ivsize AF_ALG rfc3686-ctr-aes-ccp requests pass an 8-byte IV to the driver. ccp_aes_complete() restores AES_BLOCK_SIZE bytes into the caller's IV buffer while RFC3686 skciphers expose an 8-byte IV, so the restore overruns the provided buffer. Use crypto_skcipher_ivsize() to copy only the algorithm's IV length.

Affected products

Linux
  • ==3.14
  • <227c1e1d9e2aa4cfc65ba446d5690da1f546cda4
  • <3.14
  • <939061b2d0f7f15114e34b4ce878ef50ff4089c3
  • =<6.1.*
  • =<*
  • <df9784bb5b637ac80f4a2768a58ca9a50bef28a9
  • =<5.15.*
  • <a7a1f3cdd64d8a165d9b8c9e9ad7fb46ac19dfc4
  • =<5.10.*
  • =<6.18.*
  • =<7.0.*
  • <dfb2cf434829819268fe50f41542aad318ad62b2
  • =<6.6.*
  • =<6.12.*
  • <798d409a8949f3f495f238549b86de2886b129bd
  • <bb01d8f1f385bc9034ca114d3508c7fdea24fc9a
  • <eecee15e263ccb8cd77170a56ab6c969cb54dd6a
Dismissed
(max. allowed matches exceeded)
created 2 months, 1 week ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
wifi: rtlwifi: pci: fix possible use-after-free caused by unfinished irq_prepare_bcn_tasklet

In the Linux kernel, the following vulnerability has been resolved: wifi: rtlwifi: pci: fix possible use-after-free caused by unfinished irq_prepare_bcn_tasklet The irq_prepare_bcn_tasklet is initialized in rtl_pci_init() and scheduled when RTL_IMR_BCNINT interrupt is triggered by hardware. But it is never killed in rtl_pci_deinit(). When the rtlwifi card probe fails or is being detached, the ieee80211_hw is deallocated. However, irq_prepare_bcn_tasklet may still be running or pending, leading to use-after-free when the freed ieee80211_hw is accessed in _rtl_pci_prepare_bcn_tasklet(). Similar to irq_tasklet, add tasklet_kill() in rtl_pci_deinit() to ensure that irq_prepare_bcn_tasklet is properly terminated before the ieee80211_hw is released. The issue was identified through static analysis.

Affected products

Linux
  • <7731b67bd59d1284d150cbe40a47e95a10613234
  • <e40873820c9d245ce482faa7ad514ebdb3b8d23d
  • =<6.1.*
  • <aa10a452e34810987fb9f4a047995b30003fb53f
  • =<*
  • =<5.15.*
  • ==2.6.38
  • <2.6.38
  • <ae10d4a1ab6bcaa1336abb171908a9a365761d3e
  • =<5.10.*
  • =<6.18.*
  • <039cd522dc70151da13329a5e3ae19b1736f468a
  • <fac1079e0fdec6df6d7562c21941587236dc3def
  • <008c456b76e9070979bc0e763897a5d3b0fdd4dc
  • <3c0e8a3179e6325a7dc6ce221aef0e03d854ab4b
  • =<6.6.*
  • =<6.12.*
  • =<7.0.*
Dismissed
(max. allowed matches exceeded)
created 2 months, 1 week ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
drm/sun4i: backend: fix error pointer dereference

In the Linux kernel, the following vulnerability has been resolved: drm/sun4i: backend: fix error pointer dereference The function drm_atomic_get_plane_state() can return an error pointer and is not checked for it. Add error pointer check. Detected by Smatch: drivers/gpu/drm/sun4i/sun4i_backend.c:496 sun4i_backend_atomic_check() error: 'plane_state' dereferencing possible ERR_PTR()

Affected products

Linux
  • <47038159c559824f4dbfb5b0d87b9b3416663372
  • <06277983eca4a31d3c2114fa33d99a6e82484b11
  • =<6.1.*
  • <e9bef62f1bb9fcb38223730657af20f4c6283c16
  • <cf615b90a11a39a28e313be5e508e94bcde72016
  • ==4.17
  • =<*
  • <779c2f10743fc021f2f0ebe2b188cadfb973c5e4
  • <4.17
  • =<6.18.*
  • <ea51fd96aca01381e8f1ac0c671a57b7619193bb
  • =<6.6.*
  • =<6.12.*
  • =<7.0.*
Dismissed
(max. allowed matches exceeded)
created 2 months, 1 week ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
libceph: Fix potential null-ptr-deref in decode_choose_args()

In the Linux kernel, the following vulnerability has been resolved: libceph: Fix potential null-ptr-deref in decode_choose_args() A message of type CEPH_MSG_OSD_MAP contains an OSD map that itself contains a CRUSH map. When decoding this CRUSH map in crush_decode(), an array of max_buckets CRUSH buckets is decoded, where some indices may not refer to actual buckets and are therefore set to NULL. The received CRUSH map may optionally contain choose_args that get decoded in decode_choose_args(). When decoding a crush_choose_arg_map, a series of choose_args for different buckets is decoded, with the bucket_index being read from the incoming message. It is only checked that the bucket index does not exceed max_buckets, but not that it doesn't point to an index with a NULL bucket. If a (potentially corrupted) message contains a crush_choose_arg_map including such a bucket_index, a null pointer dereference may occur in the subsequent processing when attempting to access the bucket with the given index. This patch fixes the issue by extending the affected check. Now, it is only attempted to access the bucket if it is not NULL.

Affected products

Linux
  • <d7a65a34d2453f8cd3e0cc0e1319740af7e24276
  • =<*
  • <a20e16ebfe2fa65348eb4b2dc7deac330ce03e9c
  • =<5.10.*
  • <d55ffad8d422b5d1cc44dad32bd3d25f4471cd9f
  • =<6.12.*
  • <6.1.175
  • <5.10.258
  • <28b0a2ab8c82d0bbdeb8013029c67c978ce6e4bf
  • =<6.1.*
  • <f2f95e6d4b97e70bb876139b0583fc8079983f85
  • <6.6.141
  • =<6.6.*
  • <301286c0ccd37d66b0e40786fd35a4f19cdbd88a
  • <7169f326a23d0f547fcd90e68b72fd387622e126
  • <6.18.33
  • <7.0.10
  • <312ec973efac0efb9b9ed64214235910e9ecbaa8
  • <6.12.91
  • <5.15.209
  • =<5.15.*
  • =<6.18.*
  • =<7.0.*
Dismissed
(max. allowed matches exceeded)
created 2 months, 1 week ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
drm/msm/dpu: fix mismatch between power and frequency

In the Linux kernel, the following vulnerability has been resolved: drm/msm/dpu: fix mismatch between power and frequency During DPU runtime suspend, calling dev_pm_opp_set_rate(dev, 0) drops the MMCX rail to MIN_SVS while the core clock frequency remains at its original (highest) rate. When runtime resume re-enables the clock, this may result in a mismatch between the rail voltage and the clock rate. For example, in the DPU bind path, the sequence could be: cpu0: dev_sync_state -> rpmhpd_sync_state cpu1: dpu_kms_hw_init timeline 0 ------------------------------------------------> t After rpmhpd_sync_state, the voltage performance is no longer guaranteed to stay at the highest level. During dpu_kms_hw_init, calling dev_pm_opp_set_rate(dev, 0) drops the voltage, causing the MMCX rail to fall to MIN_SVS while the core clock is still at its maximum frequency. When the power is re-enabled, only the clock is enabled, leading to a situation where the MMCX rail is at MIN_SVS but the core clock is at its highest rate. In this state, the rail cannot sustain the clock rate, which may cause instability or system crash. Remove the call to dev_pm_opp_set_rate(dev, 0) from dpu_runtime_suspend to ensure the correct vote is restored when DPU resumes. Patchwork: https://patchwork.freedesktop.org/patch/710077/

Affected products

Linux
  • <5.9
  • <c5735c7d0eef7a5240f9c1c66e44ba52a1be58d6
  • <1181a7028d37e0b1e720a36125a03f5db97e3d27
  • =<6.1.*
  • =<*
  • <9830999c9e065c1813ec5435bfe4eab98ee54a87
  • <bc1dccc518cc5ab5140fba06c27e7188e0ed342b
  • =<6.18.*
  • <0ccf4f27b4652570b5de3de02a89a86435559de9
  • =<6.6.*
  • =<6.12.*
  • ==5.9
  • =<7.0.*
  • <0f7dd5839cfabaf9c007fb718ec66e907a473c93
Dismissed
(max. allowed matches exceeded)
created 2 months, 1 week ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
bpf: Fix RCU stall in bpf_fd_array_map_clear()

In the Linux kernel, the following vulnerability has been resolved: bpf: Fix RCU stall in bpf_fd_array_map_clear() Add a missing cond_resched() in bpf_fd_array_map_clear() loop. For PROG_ARRAY maps with many entries this loop calls prog_array_map_poke_run() per entry which can be expensive, and without yielding this can cause RCU stalls under load: rcu: Stack dump where RCU GP kthread last ran: CPU: 0 UID: 0 PID: 30932 Comm: kworker/0:2 Not tainted 6.14.0-13195-g967e8def1100 #2 PREEMPT(undef) Workqueue: events prog_array_map_clear_deferred RIP: 0010:write_comp_data+0x38/0x90 kernel/kcov.c:246 Call Trace: <TASK> prog_array_map_poke_run+0x77/0x380 kernel/bpf/arraymap.c:1096 __fd_array_map_delete_elem+0x197/0x310 kernel/bpf/arraymap.c:925 bpf_fd_array_map_clear kernel/bpf/arraymap.c:1000 [inline] prog_array_map_clear_deferred+0x119/0x1b0 kernel/bpf/arraymap.c:1141 process_one_work+0x898/0x19d0 kernel/workqueue.c:3238 process_scheduled_works kernel/workqueue.c:3319 [inline] worker_thread+0x770/0x10b0 kernel/workqueue.c:3400 kthread+0x465/0x880 kernel/kthread.c:464 ret_from_fork+0x4d/0x80 arch/x86/kernel/process.c:153 ret_from_fork_asm+0x19/0x30 arch/x86/entry/entry_64.S:245 </TASK>

Affected products

Linux
  • <71ddb7defc442ab38c53123c384fedbfd8410a15
  • =<*
  • =<6.18.*
  • <67bdb4b0d26f2d6bbf1798a925ef5a3b9ed7357a
  • <4406942e65ca128c56c67443832988873c21d2e9
  • ==5.5
  • =<6.6.*
  • =<6.12.*
  • =<7.0.*
  • <5.5
  • <b1f7158a86f3cbac4d5a32beb55ca0f8027d44cd
  • <e1ed678855e315f90c70c1723e94157a9a82e660
Dismissed
(max. allowed matches exceeded)
created 2 months, 1 week ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
drm/xe/dma-buf: handle empty bo and UAF races

In the Linux kernel, the following vulnerability has been resolved: drm/xe/dma-buf: handle empty bo and UAF races There look to be some nasty races here when triggering the invalidate_mappings hook: 1) We do xe_bo_alloc() followed by the attach, before the actual full bo init step in xe_dma_buf_init_obj(). However the bo is visible on the attachments list after the attach. This is bad since exporter driver, say amdgpu, can at any time call back into our invalidate_mappings hook, with an empty/bogus bo, leading to potential bugs/crashes. 2) Similar to 1) but here we get a UAF, when the invalidate_mappings hook is triggered. For example, we get as far as xe_bo_init_locked() but this fails in some way. But here the bo will be freed on error, but we still have it attached from dma-buf pov, so if the invalidate_mappings is now triggered then the bo we access is gone and we trigger UAF and more bugs/crashes. To fix this, move the attach step until after we actually have a fully set up buffer object. Note that the bo is not published to userspace until later, so not sure what the comment "Don't publish the bo until we have a valid attachment", is referring to. We have at least two different customers reporting hitting a NULL ptr deref in evict_flags when importing something from amdgpu, followed by triggering the evict flow. Hit rate is also pretty low, which would hint at some kind of race, so something like 1) or 2) might explain this. v2: - Shuffle the order of the ops slightly (no functional change) - Improve the comment to better explain the ordering (Matt B) (cherry picked from commit af1f2ad0c59fe4e2f924c526f66e968289d77971)

Affected products

Linux
  • =<*
  • ==6.8
  • <6.8
  • <20a99ea1e2fd720856d6ba497ff26b82c604751f
  • =<6.18.*
  • =<6.12.*
  • <c473ae25421fddc3dde247ba7b85225b10641d09
  • =<7.0.*
  • <981bedbbe61364fcc3a3b87ebaf648a66cd07108
  • <9894731e513019df22a29e5c52f1c98890355ff1