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
fbdev: efifb: fix memory leak in efifb_probe()

In the Linux kernel, the following vulnerability has been resolved: fbdev: efifb: fix memory leak in efifb_probe() Since commit 73ce73c30ba9 ("fbdev: Transfer video= option strings to caller; clarify ownership") the string returned from fb_get_options() is expected to be freed by the caller, but the string is not freed in efifb_probe(). Fix that by freeing the option string after setup.

Affected products

Linux
  • <475383daf5f855f5b2c3a9aa801f69b69a81799e
  • <9b6eaf101656958397a6012bf43f6e2e42c9e5cb
  • <febb5b4f67ace78d6b6862cc3c853b64710afb6c
  • =<6.6.*
  • <fafb2e08741b20027cee77918816de29a32d6fd6
  • =<*
  • <6.4
  • =<6.18.*
  • =<6.12.*
  • =<7.1.*
  • <5276e3f75ddb51f980a8903f4b39e73cf42415e5
  • ==6.4
Dismissed
(max. allowed matches exceeded)
created 3 weeks, 4 days ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
bpf: Reject negative const offsets for buffer pointers

In the Linux kernel, the following vulnerability has been resolved: bpf: Reject negative const offsets for buffer pointers The verifier rejects variable offsets for PTR_TO_TP_BUFFER and PTR_TO_BUF accesses, but it currently accepts a constant negative offset produced by pointer arithmetic. Commit 022ac0750883 ("bpf: use reg->var_off instead of reg->off for pointers") moved constant pointer offsets from reg->off to reg->var_off. However, __check_buffer_access() continued to check only the instruction offset. An access with reg->var_off equal to -8 and an instruction offset of zero therefore passes verification. For writable raw tracepoints, the access end is also calculated from the unsigned reg->var_off.value. An eight-byte access starting at -8 wraps the calculated end to zero, allowing the program to load and attach without increasing max_tp_access. After ensuring that reg->var_off is constant, calculate the effective access start using signed arithmetic and reject it when it is negative. Use the validated start to calculate the access end for both PTR_TO_TP_BUFFER and PTR_TO_BUF.

Affected products

Linux
  • =<*
  • <7.1
  • <314bd592085c0720ef519f6edbc5f41440ff78d4
  • =<7.1.*
  • ==7.1
  • <fd4cfa8c8f9a17cdec0539334d28754bc1d8a5d9
Dismissed
(max. allowed matches exceeded)
created 3 weeks, 4 days ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
KVM: s390: pci: Fix memory accounting for pinned/unpinned pages

In the Linux kernel, the following vulnerability has been resolved: KVM: s390: pci: Fix memory accounting for pinned/unpinned pages The account_mem() and unaccount_mem() functions call get_uid() which increments the reference count of struct user_struct on every invocation. But we don't decrement the count by calling free_uid(). It also accounted/unaccounted the pages against the current->mm. But its possible the unaccount_mem() can be called from a different process context than the one that originally pinned the pages. Let's fix this by storing the pinning process user_struct and mm_struct when accounting for pinned pages, and subsequently free these resources when the pages are unpinned. [borntraeger@linux.ibm.com: Fixed whitespace]

Affected products

Linux
  • <6.0
  • ==6.0
  • =<*
  • <70871b121f81d08879363cb1238a4c85c5c2800c
  • <e3f732e086e438c52c7400bd2734bb166aa4752c
  • =<6.18.*
  • =<7.1.*
  • <36f6999ecde3976731a8bfc0b8e667da6f593069
Dismissed
(max. allowed matches exceeded)
created 3 weeks, 4 days ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
can: bcm: defer rx_op deallocation to workqueue to fix thrtimer UAF

In the Linux kernel, the following vulnerability has been resolved: can: bcm: defer rx_op deallocation to workqueue to fix thrtimer UAF Commit f1b4e32aca08 ("can: bcm: use call_rcu() instead of costly synchronize_rcu()") replaced synchronize_rcu() in bcm_delete_rx_op() with call_rcu() and introduced the RX_NO_AUTOTIMER flag. However, this flag check was omitted for thrtimer in the packet rx fast-path. During BCM RX operation teardown, a concurrent RCU reader (bcm_rx_handler) can race and re-arm thrtimer via bcm_rx_update_and_send() after call_rcu() has been scheduled. Once the RCU grace period elapses, bcm_op is freed. The subsequently firing thrtimer then dereferences the deallocated op, causing a UAF. Adding flag checks to the rx fast-path (bcm_rx_update_and_send) does not fully close the TOCTOU race and introduces latency for every CAN frame. Conversely, calling hrtimer_cancel() directly inside the RCU callback (softirq context) is fatal as hrtimer_cancel() can sleep, triggering a "scheduling while atomic" panic. Resolve this by deferring the timer cancellation and memory free to a dedicated unbound workqueue (bcm_wq). The RCU callback now queues a work item to bcm_wq, which safely cancels both timers and deallocates memory in sleepable process context. A dedicated workqueue is used to prevent system-wide WQ saturation and is cleanly flushed/destroyed on module unload to avoid rmmod page faults. Since the deferred work can now outlive the calling context by an unbounded amount, also take a reference on op->sk when it is assigned and drop it only once the deferred work has cancelled both timers, so a socket can no longer be freed out from under a still-armed timer whose callback (bcm_send_to_user()) dereferences op->sk.

Affected products

Linux
  • ==fbac09a3b8890003c0c55294c00709f3ae5501bb
  • <3cf4fd5316f449811d8baf1bc6978ef5a7b743a9
  • <4.20
  • =<*
  • =<6.6.*
  • ==85cd41070df992d3c0dfd828866fdd243d3b774a
  • ==5.19
  • <5.19
  • =<7.1.*
  • <4177762f70646ac48a2af382e45a795cbd295198
  • ==f34f2a18e47b73e48f90a757e1f4aaa8c7d665a1
  • =<6.18.*
  • ==edb4baffb9483141a50fb7f7146cfe4a4c0c2db8
  • <68973f9db76144825e4f35dfdc80fb8279eb2d57
  • =<6.1.*
  • <ce2d4b121fb7545e1ed588e860c8e5fd5ad45224
  • <5.11
  • <6fd08e8d826c3aa4cc7021f5f9cdbb7fa7441d3f
  • <5.16
  • =<6.12.*
  • <5.19
  • ==5b48f5711f1c630841ab78dcc061de902f0e37bf
  • <5.5
  • <cd830e0bc25ee2d38cbfbdbb3cd77c5f53b2b6d5
Dismissed
(max. allowed matches exceeded)
created 3 weeks, 4 days ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
wifi: mt76: use kfree_rcu for offchannel link in mt76_put_vif_phy_link

In the Linux kernel, the following vulnerability has been resolved: wifi: mt76: use kfree_rcu for offchannel link in mt76_put_vif_phy_link mt76_put_vif_phy_link() frees the offchannel mlink with plain kfree() after rcu_assign_pointer(NULL). However, rcu_assign_pointer only prevents future RCU readers from obtaining the pointer -- it does not wait for existing readers that already hold it via rcu_dereference. The TX datapath (e.g. mt7996_mac_write_txwi) dereferences mlink->wcid and mlink->idx under rcu_read_lock. If a TX softirq obtained the pointer via rcu_dereference just before the NULL assignment, it will dereference freed memory after the kfree. struct mt76_vif_link already contains an rcu_head field that is unused at this free site -- a developer oversight, since the adjacent kfree_rcu_mightsleep call for rx_sc in the same function shows the pattern was understood. Replace kfree(mlink) with kfree_rcu(mlink, rcu_head).

Affected products

Linux
  • <50e700ac0edce72dee5c3a9755865d9423696ac7
  • ==6.14
  • =<*
  • =<6.18.*
  • <6.14
  • =<7.1.*
  • <c7a83899203ed36696a2d35ddd03c0f522874a63
  • <7fae097aa9a56c30febf539d72ef3773165d3aa3
Dismissed
(max. allowed matches exceeded)
created 3 weeks, 4 days ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
RDMA/bnxt_re: Add a max slot check for SQ

In the Linux kernel, the following vulnerability has been resolved: RDMA/bnxt_re: Add a max slot check for SQ The variable WQE mode must be validated against the maximum slots supported by HW. The max supported value is 64K. Adding a max and min check and fail if user supplied value is more than the max supported and zero.

Affected products

Linux
  • ==6.12
  • =<*
  • <6.12
  • =<7.1.*
  • <dc95931b7e1326dacae547874bf38c092e5960d8
  • <a59d815cbe667929b693b5fa6716a074e6a31c5b
Dismissed
(max. allowed matches exceeded)
created 3 weeks, 4 days ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
of: reserved_mem: avoid post-init UAF when alloc_reserved_mem_array() fails

In the Linux kernel, the following vulnerability has been resolved: of: reserved_mem: avoid post-init UAF when alloc_reserved_mem_array() fails The global pointer 'reserved_mem' continues to reference the reserved_mem_array which lives in __initdata if alloc_reserved_mem_array() fails. of_reserved_mem_lookup() is exported for post-init use, that would dereference freed memory and trigger a use-after-free. So reset reserved_mem_count to 0 when alloc_reserved_mem_array() fails.

Affected products

Linux
  • <e1686ca81dbf3edbde589b7daf312b45cbf76e03
  • <9af58d10d0d8c08b822de5fc99e61f31a87ede8d
  • =<*
  • <cbd3102fe27bc87da244bf4c3ba670ea4698b0a8
  • <6d28e6ad3c5c9248577f21057baa9bf16fa9ef3b
  • ==6.13
  • <6.13
  • =<6.18.*
  • =<7.1.*
Dismissed
(max. allowed matches exceeded)
created 3 weeks, 4 days ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
net: wwan: t7xx: destroy DMA pool on CLDMA late init failure

In the Linux kernel, the following vulnerability has been resolved: net: wwan: t7xx: destroy DMA pool on CLDMA late init failure t7xx_cldma_late_init() creates md_ctrl->gpd_dmapool before initializing the TX and RX rings. If any ring initialization fails, the error path frees the already initialized rings but leaves the DMA pool allocated. Destroy md_ctrl->gpd_dmapool on the late-init failure path to avoid leaking the DMA pool.

Affected products

Linux
  • <2bd6f26d4ce1e87de4d736b1e8896daf3acf1c0e
  • <e89b8829693e65217d587dceeaad4826c96c731b
  • =<6.6.*
  • =<*
  • <ebd84cb129fac7f7933628c40fccdfa8a62805de
  • ==5.19
  • =<6.18.*
  • =<6.12.*
  • =<7.1.*
  • <cef50f9f9045ff5e6a9d62c5110522df98fca645
  • <fd01247bde1add970fae7f0003af085333a256e6
  • <5.19
  • =<6.1.*
  • <0c0a8c7821485f32bdb4923fb22f2dd501a27d8a
Dismissed
(max. allowed matches exceeded)
created 3 weeks, 4 days ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
nvmet-tcp: fix page fragment cache leak in error path

In the Linux kernel, the following vulnerability has been resolved: nvmet-tcp: fix page fragment cache leak in error path In nvmet_tcp_alloc_queue(), when a connection is closed during the allocation process (e.g., nvmet_tcp_set_queue_sock() returns -ENOTCONN), the error handling jumps to out_destroy_sq and then to out_ida_remove without draining the page fragment cache. Although nvmet_tcp_free_cmd() is called in some error paths to release individual page fragments, the underlying page cache reference held by queue->pf_cache is never released. The first allocation using pf_cache is the call to nvmet_tcp_alloc_cmd() for queue->connect, which happens after ida_alloc() returns successfully. This results in a page leak each time a connection fails during allocation, which could lead to memory exhaustion over time if connections are repeatedly opened and closed. Fix this by calling page_frag_cache_drain() before freeing the queue structure in the out_ida_remove label.

Affected products

Linux
  • <ba3209704b3cd46961e4e081af5c52a780785648
  • <4dae393956093c807212918fd91a8fc70df15338
  • =<*
  • ==5.0
  • <5fbe83a374f09561a0f0c1f4aa021501ffd681eb
  • <5.0
  • <a43a9abc1ebf663f0aa56a729106f68dd9c77da6
  • =<6.18.*
  • =<6.12.*
  • =<7.1.*
Dismissed
(max. allowed matches exceeded)
created 3 weeks, 4 days ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
md/raid1,raid10: fix error-path detection with md_cloned_bio()

In the Linux kernel, the following vulnerability has been resolved: md/raid1,raid10: fix error-path detection with md_cloned_bio() Detect the error path using md_cloned_bio() instead of relying on r1_bio in raid1 or r10_bio->read_slot in raid10, which may be NULL or -1 after splitting and resubmitting a failed bio. As a result, the error path may not be recognized and memory allocations can incorrectly use GFP_NOIO instead of (GFP_NOIO | __GFP_HIGH), which can lead to a deadlock under memory pressure.

Affected products

Linux
  • <20fb582c92fd64e5c8bd83c6176264b2794603b7
  • <4.12
  • =<*
  • ==4.12
  • =<7.1.*
  • <811545e0926d02a6a0b1a1258bb5544777c164d4