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, 3 days ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
accel/amdxdna: Use caller client for debug BO sync

In the Linux kernel, the following vulnerability has been resolved: accel/amdxdna: Use caller client for debug BO sync amdxdna_drm_sync_bo_ioctl() looks up args->handle in the ioctl caller's drm_file. For SYNC_DIRECT_FROM_DEVICE, it then calls amdxdna_hwctx_sync_debug_bo(), but passes abo->client. amdxdna_hwctx_sync_debug_bo() uses the passed client both as the handle namespace for debug_bo_hdl and as the owner of the hardware context xarray. Those must match the file that supplied args->handle. The BO's stored client pointer is object state, not the ioctl context. Pass filp->driver_priv instead, matching the original handle lookup.

Affected products

Linux
  • =<*
  • ==6.19
  • <216e43d93dd49ec253052741aa476e51a8c54cd8
  • =<7.1.*
  • <6.19
  • <7caf2a2351d4053075670ff3e26a6815da0a9e1e
Dismissed
(max. allowed matches exceeded)
created 3 weeks, 3 days ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
KVM: arm64: nv: Inject SEA if guest VNCR isn't normal memory

In the Linux kernel, the following vulnerability has been resolved: KVM: arm64: nv: Inject SEA if guest VNCR isn't normal memory When constructing an L1 VNCR mapping, KVM unconditionally uses cacheable memory attributes, even if the underlying PFN isn't memory. This gets particularly hairy if the endpoint doesn't support cacheable memory attributes, potentially throwing an SError on writeback... While KVM does permit cacheable memory attributes on certain PFNMAP VMAs, kvm_translate_vncr() isn't currently grabbing the VMA. So do the simpler thing for now and just reject everything that isn't memory.

Affected products

Linux
  • ==6.16
  • <4bd7dbe0b2243e6aa735cae4d5e1ff988b30b2a6
  • <6.16
  • =<*
  • =<6.18.*
  • =<7.1.*
  • <bc00e0e376ee3572f5d26c174473abef1e35decc
  • <d5436e18e4fc2886ac306304d884ea3b92e1edbf
Dismissed
(max. allowed matches exceeded)
created 3 weeks, 3 days ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
net: Stop leased rxq before uninstalling its memory provider

In the Linux kernel, the following vulnerability has been resolved: net: Stop leased rxq before uninstalling its memory provider netif_rxq_cleanup_unlease() tears down the memory provider that was installed on a physical RX queue through a netkit queue lease. It currently revokes the provider's DMA mappings before stopping the physical queue: __netif_mp_uninstall_rxq(virt_rxq, p); /* DMA unmap */ __netif_mp_close_rxq(phys_rxq->dev, rxq_idx, p); /* queue stop */ This inverts the ordering used by the regular teardown paths (normal device unregister and the io_uring zcrx close path), which stop the queue before revoking the provider's mappings. With the physical queue still live, its NAPI can keep consuming net_iov entries from the page_pool alloc cache after the __netif_mp_uninstall_rxq() has already cleared their dma_addr, opening a window for the device to DMA to a stale or zero address. Fix it by swapping the two calls so the queue is stopped (and its NAPI quiesced) before the provider is uninstalled. No functional regression was observed across repeated runs of the nk_qlease.py HW selftest, which exercises the lease teardown path; this was tested against fbnic QEMU emulation.

Affected products

Linux
  • =<*
  • <7.1
  • <03f4c6ed3cffbfce0b85a3a0193d08a46692a9f8
  • ==7.1
  • =<7.1.*
  • <37314c9dbe95b4d924c7b61aaf563cec4f4e4133
Dismissed
(max. allowed matches exceeded)
created 3 weeks, 3 days ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
net: thunderbolt: Fix frags[] overflow by bounding frame_count

In the Linux kernel, the following vulnerability has been resolved: net: thunderbolt: Fix frags[] overflow by bounding frame_count tbnet_poll() assembles a multi-frame ThunderboltIP packet into one skb. The first frame goes into the skb linear area and every further frame is added as a page fragment. skb_add_rx_frag(skb, skb_shinfo(skb)->nr_frags, page, hdr_size, frame_size, TBNET_RX_PAGE_SIZE - hdr_size); A packet of frame_count frames therefore ends up with frame_count - 1 fragments. tbnet_check_frame() only bounds the peer supplied frame_count to TBNET_RING_SIZE / 4 (64), which is far above MAX_SKB_FRAGS (17 by default). A peer that sends a packet of 19 or more small frames pushes nr_frags past MAX_SKB_FRAGS, so skb_add_rx_frag() writes past skb_shinfo()->frags[] and corrupts memory after the shared info. Tighten the start of packet bound to MAX_SKB_FRAGS + 1 so a packet can never produce more fragments than frags[] can hold. This matches the recent skb frags overflow fixes in other receive paths, for example f0813bcd2d9d ("net: wwan: t7xx: fix potential skb->frags overflow in RX path") and 600dc40554dc ("net: usb: cdc-phonet: fix skb frags[] overflow in rx_complete()").

Affected products

Linux
  • ==4.15
  • <e27beb4536cbf1d59e2d8c2840e87d972aba906f
  • <e5824d5b841d99a2bcdd4e2c256643293bbc22c1
  • <55d9895f89970501fe126d1026b586b04a224c27
  • =<*
  • =<6.6.*
  • <2b3b4e5ff5a58ad32817824b0310e63908b12052
  • =<6.18.*
  • <4.15
  • =<6.12.*
  • =<7.1.*
  • <fe6b606fbf0c3beb94ccf17fcf31d8c2138264e3
Dismissed
(max. allowed matches exceeded)
created 3 weeks, 3 days ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
netfilter: nf_conncount: fix zone comparison in tuple dedup

In the Linux kernel, the following vulnerability has been resolved: netfilter: nf_conncount: fix zone comparison in tuple dedup The "already exists" dedup logic in __nf_conncount_add() decides whether a connection has already been counted and can be skipped instead of incrementing the connlimit count. It compares the conntrack zone of a list entry with the zone of the connection being added using nf_ct_zone_id() and nf_ct_zone_equal(), passing conn->zone.dir or zone->dir as the direction argument. Those helpers take enum ip_conntrack_dir values: IP_CT_DIR_ORIGINAL is 0 and IP_CT_DIR_REPLY is 1. However, zone->dir is a u8 bitmask: NF_CT_ZONE_DIR_ORIG is 1, NF_CT_ZONE_DIR_REPL is 2 and NF_CT_DEFAULT_ZONE_DIR is 3. Passing that bitmask as the enum direction shifts the meaning of every non-zero value. An ORIG-only zone passes 1 and is tested as REPLY, while REPL-only and default zones pass 2 or 3 and test bits beyond the valid direction range. In those cases nf_ct_zone_id() can fall back to NF_CT_DEFAULT_ZONE_ID instead of using the real zone id, so different zones can be treated as equal and dedup collapses to tuple equality alone. nf_conncount stores and compares the original-direction tuple for a connection. If an skb already has an attached conntrack entry, get_ct_or_tuple_from_skb() explicitly copies ct->tuplehash[IP_CT_DIR_ORIGINAL].tuple, regardless of the packet's ctinfo. Therefore the zone comparison in the tuple dedup path must use IP_CT_DIR_ORIGINAL as well; the zone direction bitmask describes where a zone id applies, not which direction this conncount tuple represents. Fix the two dedup comparisons by passing IP_CT_DIR_ORIGINAL directly. Do not special-case NF_CT_DEFAULT_ZONE_DIR and do not compare raw zone ids: using the existing helpers with IP_CT_DIR_ORIGINAL preserves the direction-aware NF_CT_DEFAULT_ZONE_ID fallback. A default bidirectional zone contains the ORIG bit, so it naturally returns the real zone id; reply-only zones continue to fall back for original-direction tuple comparisons.

Affected products

Linux
  • <f62c41b4910e65da396ec9a8c40c1fe7fe82e449
  • =<6.6.*
  • <4.15
  • =<*
  • <82fc35e0da9a91db9a034f8311f18f77a599ae3f
  • =<7.1.*
  • <7bdc3c0985ecf17b957811fedcc684acdf698acc
  • <4f30a89c0ed2418719a1144881c2635b940b543d
  • =<5.10.*
  • <78b5d6dbc860776161f9e9206b06ff8a01f531ab
  • =<6.18.*
  • =<6.1.*
  • <3cd9a5792cbea81139c24320986dd0db69e9b5d0
  • <4.18
  • <35a56e2a46b90e6bd4ca816b80e9cb8d20dfc3ce
  • =<6.12.*
  • =<5.15.*
  • ==525e1dffed8711973f77412729621098a95238e5
  • <6ff07ac5405bea4d4ead3559fc123f987576424a
  • ==4.18
  • ==75af3d78168e654a5cd8bbc4c774f97be836165f
Dismissed
(max. allowed matches exceeded)
created 3 weeks, 3 days ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
io_uring/bpf-ops: reject re-registration of an already-bound ops

In the Linux kernel, the following vulnerability has been resolved: io_uring/bpf-ops: reject re-registration of an already-bound ops io_install_bpf() only rejects a second registration on the ctx side (ctx->bpf_ops) and sets the per-map back-pointer ops->priv unconditionally. The struct_ops link path never advances a map past BPF_STRUCT_OPS_STATE_READY, so the same io_uring_bpf_ops map can be registered more than once, and bpf_io_reg() re-resolves the target ring via fget(ops->ring_fd) on every call. A caller can therefore point the same ring_fd at a different io_ring_ctx between two BPF_LINK_CREATE calls. The second registration passes the ctx->bpf_ops check (the new ctx has none) and overwrites ops->priv, orphaning the first ctx. Teardown (io_eject_bpf()/bpf_io_unreg()) only reaches a ctx through ops->priv, so the orphaned ctx is never torn down: its ctx->loop_step keeps pointing into the struct_ops trampoline, which is freed once the map is gone. A later io_uring_enter() on the orphaned ring then calls the dangling ctx->loop_step from io_run_loop() -- a use-after-free of freed executable memory, reachable by a task with CAP_BPF + CAP_PERFMON. Reject registration when ops->priv is already set, as hid_bpf_reg() does for its struct_ops.

Affected products

Linux
  • =<*
  • <7.1
  • <3afc64c61ce906a04f073ca350b46de10e8302f9
  • <0639ea767fe04c288a8d6cb826100fe3d95d4936
  • ==7.1
  • =<7.1.*
Dismissed
(max. allowed matches exceeded)
created 3 weeks, 3 days ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
ipvs: reload ip header after head reallocation

In the Linux kernel, the following vulnerability has been resolved: ipvs: reload ip header after head reallocation __ip_vs_get_out_rt() calls skb_ensure_writable() which may reallocate skb->head.

Affected products

Linux
  • <ac6ac3d35bfc0ade9d17d354c84e503a946ebdab
  • =<6.6.*
  • =<*
  • <4.10
  • <ad1e14710b360bda087ebf9fb82460eb5ef775de
  • <e51687fc56c2e39ea6e9532925f1aabd4d529f61
  • =<6.12.*
  • ==4.10
  • <a2f57827bf7c695b8c72dc4511cae8e86582369d
  • =<6.18.*
  • =<7.1.*
  • <3fb7edd2018bb1ad0a68157383d9b9dac33dd645
Dismissed
(no matching packages found)
Permalink CVE-2026-15312
8.8 HIGH
  • CVSS version (CVSS): 3.1
  • Attack Vector (AV): Network (N)
  • Attack Complexity (AC): Low (L)
  • Privileges Required (PR): Low (L)
  • User Interaction (UI): None (N)
  • Scope (S): Unchanged (U)
  • Confidentiality (C): High (H)
  • Integrity (I): High (H)
  • Availability (A): High (H)
  • Modified Attack Vector (MAV): Network (N)
  • Modified Attack Complexity (MAC): Low (L)
  • Modified Privileges Required (MPR): Low (L)
  • Modified User Interaction (MUI): None (N)
  • Modified Confidentiality (MC): High (H)
  • Modified Scope (MS): Unchanged (U)
  • Modified Integrity (MI): High (H)
  • Modified Availability (MA): High (H)
created 3 weeks, 3 days ago Activity log
  • Created & dismissed (no matching packages found) suggestion
Propovoice: All-in-One Client Management System <= 1.7.8 - Authenticated (ndpv_manager+) Privilege Escalation via 'role' Parameter

The Propovoice: All-in-One Client Management System plugin for WordPress is vulnerable to Privilege Escalation in all versions up to, and including, 1.7.8. This is due to the `create()` function's REST endpoint failing to validate the user-supplied `role` parameter against an allowlist of permitted WordPress roles and omitting any `promote_users` capability check before passing the sanitized value directly to `WP_User::set_role()`. This makes it possible for authenticated attackers with `ndpv_manager`-level access and above to create a new WordPress user account with the `administrator` role assigned, achieving full vertical privilege escalation. The `ndpv_manager` capability is a sub-administrator CRM team role granted by Propovoice itself, meaning the attack surface extends beyond site administrators to any user the plugin has elevated to a manager position.

Affected products

Propovoice: All-in-One Client Management System
  • =<1.7.8
Dismissed
(max. allowed matches exceeded)
created 3 weeks, 3 days ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
ASoC: fsl: fsl_audmix: Validate written enum values

In the Linux kernel, the following vulnerability has been resolved: ASoC: fsl: fsl_audmix: Validate written enum values fsl_audmix_put_mix_clk_src() and fsl_audmix_put_out_src() convert the user-provided enum item with snd_soc_enum_item_to_val() before checking whether the item is within the enum's item count. The generic snd_soc_put_enum_double() helper performs that validation, but these callbacks use the converted value first: the clock-source path tests it with BIT(), and the output-source path indexes the prms transition table with it. Reject out-of-range enum items before converting them.

Affected products

Linux
  • ==5.2
  • =<5.10.*
  • =<6.6.*
  • =<*
  • <5b7a23c1ed04e794ef3b31e452ef5c93e1e34b4a
  • <b4774a7da12b14fc37219ab4368d1907f9b5aca4
  • <8fb4364eb494b926d009bfaf3c98f07c3aa5d9f3
  • <5.2
  • <7513831b90a38d55fa089e3e1b49691e467afee6
  • =<6.18.*
  • =<6.12.*
  • =<7.1.*
  • =<5.15.*
  • <b36d6d48faa6b1bb723b8f4e527c531a1a68520e
  • <0f1510e84d7bfc3eb9538efa65c6ea0aadf1078c
  • <0b10c6203e62d9e7337cc401568b201f9bac79ec
  • <3cd17e4e2871114d5579fa7bc8da66faf7fc1930
  • =<6.1.*
Dismissed
(max. allowed matches exceeded)
created 3 weeks, 3 days ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
rxrpc: Fix the reception of a reply packet before data transmission

In the Linux kernel, the following vulnerability has been resolved: rxrpc: Fix the reception of a reply packet before data transmission Fix rxrpc_receiving_reply() to handle the reception of an apparent reply DATA packet before rxrpc has had a chance to send any request DATA packets on a client call by checking to see if the call has been exposed yet by sending the first packet. Without this, rxrpc_rotate_tx_window() might oops. Also fix rxrpc_rotate_tx_window() to handle the Tx queue being empty by changing the do...while loop into a while loop, just in case a call is abnormally terminated by an early reply before the last request packet is transmitted.

Affected products

Linux
  • ==6.14
  • <f9be514984471ff0003738b2e1efed12bc3433ff
  • =<*
  • <a58e33405acd2584e730c1da72635f822ada6b49
  • =<6.18.*
  • <e220ae559e5a0fc33e41ec6a348ea50387cb8b0f
  • <6.14
  • =<7.1.*