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 3 weeks, 4 days ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
net/mlx5: free mlx5_st_idx_data on final dealloc

In the Linux kernel, the following vulnerability has been resolved: net/mlx5: free mlx5_st_idx_data on final dealloc Workloads that repeatedly allocate and release mkeys carrying TPH steering-tag hints (e.g. churning RDMA MRs) leak one struct mlx5_st_idx_data per cycle; kmemleak flags it as unreferenced and the kmalloc slab grows over time. When the last reference to an ST table entry is dropped, mlx5_st_dealloc_index() removed the entry from idx_xa but the backing mlx5_st_idx_data allocation was never freed. Free idx_data after the xa_erase() so the lifetime of the bookkeeping struct matches the lifetime of the ST entry it tracks.

Affected products

Linux
  • <6.17
  • ==6.17
  • =<*
  • <6eb4cf2fa8997f62c11e0006dc010a1fd89c5a75
  • <df6134b527a88b3e65ba6ae5073664af091d5fd2
  • =<6.18.*
  • =<7.1.*
  • <262da8b6ea03d01ee7ed01ad309e4c89941f6b14
Dismissed
(max. allowed matches exceeded)
created 3 weeks, 4 days ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
drm/amdkfd: always resume_all after suspend_all

In the Linux kernel, the following vulnerability has been resolved: drm/amdkfd: always resume_all after suspend_all Need to restore any good queues even if the suspend_all failed for some. Always run remove_queue as that will schedule a GPU reset is removing the queue fails. v2: move resume_all after remove

Affected products

Linux
  • ==6.12
  • =<*
  • =<6.18.*
  • <6.12
  • =<6.12.*
  • <b5fc19c898e08deb40b671329d99d85d2d575f0b
  • =<7.1.*
  • <56ae73c92e200e630c2bdf1e98c88b86c8483b37
  • <9a030fcb4b192a508113787ef28fb97e27dcf6f6
  • <e29da2a4d9a3b1837dec3ce0892835d506c2a85e
Dismissed
(max. allowed matches exceeded)
created 3 weeks, 4 days ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
SUNRPC: Bound-check xdr_buf_to_bvec() stores before writing

In the Linux kernel, the following vulnerability has been resolved: SUNRPC: Bound-check xdr_buf_to_bvec() stores before writing xdr_buf_to_bvec() writes a bio_vec into the caller's array before testing whether that slot is in range, and the head branch performs the store with no check at all. When the caller's budget is exactly used up, the next store lands one element past the end of the array. The overflow label returns count - 1, which masks the surplus store but cannot undo it. rq_bvec, the array passed by nfsd_vfs_write(), is allocated to exactly rq_maxpages entries with no slack. The OOB store can land in adjacent slab memory; the bv_len and bv_offset fields written there are derived from client-supplied RPC payload sizes. Move the in-range check ahead of the store in the head, page-loop, and tail branches. With the check at the top of each sequence, count is incremented only after a successful store, so the overflow label can return count directly.

Affected products

Linux
  • <42f5b80dda6b86e424054baf1475df686c403d5c
  • <6.6
  • ==6.6
  • =<6.6.*
  • =<*
  • <6029e711a818bf34d6c4b90cafee24f3afffa110
  • <69e18135e2a004a79505451dbef07314ea16e1eb
  • <98414b42530af65cb984ffc12685096a3b5e179a
  • =<6.18.*
  • =<6.12.*
  • =<7.1.*
  • <4a1148f2739d5089c3ca8ae2e9d1053e219ab5df
Dismissed
(max. allowed matches exceeded)
created 3 weeks, 4 days ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
netfilter: flowtable: Validate iph->ihl in nf_flow_ip4_tunnel_proto()

In the Linux kernel, the following vulnerability has been resolved: netfilter: flowtable: Validate iph->ihl in nf_flow_ip4_tunnel_proto() Add sanity check for iph->ihl field in nf_flow_ip4_tunnel_proto() before using it to compute the header size, avoiding out-of-bounds access with malformed IP headers. While at it, use iph->protocol instead of the hardcoded IPPROTO_IPIP constant when setting ctx->tun.proto and reference ctx->tun.hdr_size when updating ctx->offset.

Affected products

Linux
  • =<*
  • ==6.19
  • =<7.1.*
  • <84460b644329e25809b4a6d9279d6359d7fd8ebc
  • <025a41e76b51fbc7b8eaa5bacbaa9621d00e6aa7
  • <6.19
Dismissed
(max. allowed matches exceeded)
created 3 weeks, 4 days ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
ntfs: centalize $INDEX_ROOT header validation

In the Linux kernel, the following vulnerability has been resolved: ntfs: centalize $INDEX_ROOT header validation Add a dedicated helper to perform stricter validation of $INDEX_ROOT and use it for both directory inodes and named index inodes. This keeps the root size and header geometry checks consistent across both read paths.

Affected products

Linux
  • =<*
  • <7.1.5
  • <b06730c6af58d3569883f8dd7c36a90aba5ecc0a
  • =<7.1.*
  • <8b97b302f553a480fb76d2afd53cd6c0635a9dcd
Dismissed
(max. allowed matches exceeded)
created 3 weeks, 4 days ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
net/mlx5e: Fix publication race for priv->channel_stats[]

In the Linux kernel, the following vulnerability has been resolved: net/mlx5e: Fix publication race for priv->channel_stats[] mlx5e_channel_stats_alloc() publishes a new entry to priv->channel_stats[] and then increments priv->stats_nch as a publication token, but neither store carries any memory barrier: priv->channel_stats[ix] = kvzalloc_node(...); if (!priv->channel_stats[ix]) return -ENOMEM; priv->stats_nch++; Concurrent readers compute the loop bound from priv->stats_nch and then dereference priv->channel_stats[i] using plain accesses, e.g. for (i = 0; i < priv->stats_nch; i++) { struct mlx5e_channel_stats *cs = priv->channel_stats[i]; ... cs->rq.packets ... } On weakly-ordered architectures (ARM, PowerPC, RISC-V) the writes to channel_stats[ix] and stats_nch may become visible to other CPUs out of program order. A reader can observe stats_nch == N while still seeing channel_stats[N-1] == NULL, leading to a NULL pointer dereference in the channel_stats loop. This has been observed in production on BlueField-3 DPUs (arm64), where ovs-vswitchd queries netdev statistics over netlink during NIC bringup, racing mlx5e_open_channel() -> mlx5e_channel_stats_alloc() on another CPU: Unable to handle kernel NULL pointer dereference at virtual address 0x840 Hardware name: BlueField-3 DPU pc : mlx5e_fold_sw_stats64+0x30/0x180 [mlx5_core] Call trace: mlx5e_fold_sw_stats64+0x30/0x180 [mlx5_core] dev_get_stats+0x50/0xc0 ovs_vport_get_stats+0x38/0xac [openvswitch] ovs_vport_cmd_fill_info+0x194/0x290 [openvswitch] ovs_vport_cmd_get+0xbc/0x10c [openvswitch] genl_family_rcv_msg_doit+0xd0/0x160 genl_rcv_msg+0xec/0x1f0 netlink_rcv_skb+0x64/0x130 genl_rcv+0x40/0x60 netlink_unicast+0x2fc/0x370 netlink_sendmsg+0x1dc/0x454 ... __arm64_sys_sendmsg+0x2c/0x40 Add mlx5e_stats_nch_write() and mlx5e_stats_nch_read() helpers in en.h that wrap the smp_store_release()/smp_load_acquire() pair on stats_nch. The release/acquire pair establishes the contract: stats_nch == N => channel_stats[0..N-1] are visible and non-NULL. Publish the stats_nch increment via mlx5e_stats_nch_write() in the writer (mlx5e_channel_stats_alloc()), and read stats_nch via mlx5e_stats_nch_read() in all readers: mlx5e RX/TX queue stats, mlx5e_get_base_stats(), ethtool channels stats, IPoIB stats, the sw_stats fold and the HV VHCA stats agent.

Affected products

Linux
  • <815515ec68f527ca755cb1e2c1ff9148f6b3ea56
  • <5.17
  • =<*
  • ==5.17
  • <5a799714e8ca0bce9ea40694f49914cf1adbbaa9
  • =<6.18.*
  • =<7.1.*
  • <5c7e3755abf663f033de24f917b77685e9543045
Dismissed
(max. allowed matches exceeded)
created 3 weeks, 4 days ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
bpf: Guard __get_user acesss with access_ok for uprobe_multi data

In the Linux kernel, the following vulnerability has been resolved: bpf: Guard __get_user acesss with access_ok for uprobe_multi data As reported by sashiko [1] we need to use access_ok to check the user space data bounds before we use __get-user to get it. [1] https://lore.kernel.org/bpf/20260610145235.CB1441F00893@smtp.kernel.org/

Affected products

Linux
  • <6.6
  • ==6.6
  • =<*
  • <c6d51ad36490013ee9df94a372d3bf794bd304d1
  • =<7.1.*
  • <4d87a251d45b4a95eb4c0abcfab809c9f231258a
Dismissed
(max. allowed matches exceeded)
created 3 weeks, 4 days ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
net/mlx5e: macsec: fix use-after-free of metadata_dst on RX SC delete

In the Linux kernel, the following vulnerability has been resolved: net/mlx5e: macsec: fix use-after-free of metadata_dst on RX SC delete When an offloaded MACsec RX SC is deleted, macsec_del_rxsc_ctx() freed the per-SC metadata_dst with metadata_dst_free(), which kfree()s the object unconditionally and ignores the dst reference count. The RX datapath in mlx5e_macsec_offload_handle_rx_skb() looks up the SC under rcu_read_lock() via xa_load(), takes a reference with dst_hold() and attaches the dst to the skb with skb_dst_set(). A reader that already obtained the rx_sc pointer can race with the delete path and operate on freed memory. Fix the owner side by dropping the reference with dst_release() instead of freeing unconditionally, and convert the RX datapath to dst_hold_safe() so a reader racing the SC delete cannot attach a dst whose last reference was just dropped; only attach it when a reference was actually taken. mlx5e_macsec_add_rxsc() also published sc_xarray_element via xa_alloc() before rx_sc->md_dst was allocated and initialised, so a datapath reader that looked the SC up by fs_id could observe rx_sc with md_dst still NULL or, on weakly-ordered architectures, a non-NULL md_dst pointer whose contents were not yet visible. NULL-check the xa_load() result and md_dst on the datapath, and reorder add_rxsc() so the xa_alloc() publish happens only after md_dst is fully initialised; the xarray RCU publish then pairs with the rcu_read_lock()/xa_load() in the datapath. Note: macsec_del_rxsc_ctx() also kfree()s rx_sc->sc_xarray_element without an RCU grace period while the same datapath reads it under rcu_read_lock(); that is a separate pre-existing issue left to a follow-up patch. Found by 0sec automated security-research tooling (https://0sec.ai).

Affected products

Linux
  • <218cc15a4c907659ad4b0e68c535c61594311205
  • ==6.1
  • <6.1
  • <088873af13590ebde10de2ade847f57a05ec61c6
  • <de74d8fd10291763d97b218f09adcc7513c975e4
  • <ed3cc4218070d6b98bf5fb456dccae424fd38c4f
  • =<6.6.*
  • <b1a4d0c568bbb52c7c04f4fce3c097dae89ed6cb
  • =<*
  • =<6.18.*
  • =<6.12.*
  • =<7.1.*
  • <4a5073b7b30243658f58b2d2d35a823da7fd34d9
  • =<6.1.*
Dismissed
(max. allowed matches exceeded)
created 3 weeks, 4 days ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
dm: limit target bio polling to one shot

In the Linux kernel, the following vulnerability has been resolved: dm: limit target bio polling to one shot dm_poll_bio() is the ->poll_bio() callback for a stacked dm device. The caller only knows about the dm queue, so it may decide to do a spinning poll if it thinks a single queue is being polled. Passing those flags unchanged to the mapped clone lets blk_mq_poll() spin on a target queue from inside dm_poll_bio(). With io_uring IOPOLL on a dm-stripe target this can keep a task in dm_poll_bio() -> bio_poll() -> blk_mq_poll() long enough to trigger an RCU CPU stall, before io_uring gets back to io_iopoll_check() and its need_resched() check. Keep dm's ->poll_bio() bounded by forcing one-shot polling for target bios. The caller can invoke dm_poll_bio() again if it wants to keep polling, and it also gets a chance to reap completions or reschedule between passes.

Affected products

Linux
  • =<*
  • ==6.19
  • <6c4ede3b771adbb3bf21ad4e8b8f2f6f6120c4f7
  • =<7.1.*
  • <6.19
  • <5aa0f9231cbacade065cedd8e9b5ebd067231171
Dismissed
(max. allowed matches exceeded)
created 3 weeks, 4 days ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
configfs: fix lockless traversals of ->s_children

In the Linux kernel, the following vulnerability has been resolved: configfs: fix lockless traversals of ->s_children Having the parent directory locked protects entries from removal by another thread, but it does *not* protect cursors from being moved around by lseek() - or freed, for that matter.

Affected products

Linux
  • <91f289728ec706b7ff1ca0ee845dd73ff2253488
  • <77fd6f50f633a52c2db061e7d71d8cb486b0265e
  • =<5.10.*
  • ==2.6.27
  • <637ef4961470e04455102b34ac484a34d8eca0a4
  • =<6.6.*
  • =<*
  • =<6.1.*
  • =<6.18.*
  • <2.6.27
  • =<6.12.*
  • =<7.1.*
  • <9b9e8bb81c41fd27e7b57a1c936fde140548535f
  • =<5.15.*
  • <e6d93108e0a27d7e6f95c7e45017d14ba2900d32
  • <b166ab78dc3f48e83d2c80bdfde4159b31fdc5fb
  • <459860529c109c5ce08b81c0776ca1200eaaeb4a
  • <9e57e2863872e82e7c7237bc32299f67ebebc543