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
ublk: reset per-IO canceled flag on each fetch

In the Linux kernel, the following vulnerability has been resolved: ublk: reset per-IO canceled flag on each fetch If a ublk server starts recovering devices but dies before issuing fetch commands for all IOs, cancellation of the fetch commands that were successfully issued may never complete. This is because the per-IO canceled flag can remain set even after the fetch for that IO has been submitted - the per-IO canceled flags for all IOs in a queue are reset together only once all IOs for that queue have been fetched. So if a nonempty proper subset of the IOs for a queue are fetched when the ublk server dies, the IOs in that subset will never successfully be canceled, as their canceled flags remain set, and this prevents ublk_cancel_cmd from actually calling io_uring_cmd_done on the commands, despite the fact that they are outstanding. Fix this by resetting the per-IO cancel flags immediately when each IO is fetched instead of waiting for all IOs for the queue (which may never happen).

Affected products

Linux
  • <0842186d2c4e67d2f8c8c2d1d779e8acffd41b5b
  • =<*
  • ==6.15
  • <6.15
  • <6.15
  • <63335e5a67d89bb7cb9b023bbb3785896587a648
  • ==42ea64e01c96e594fb4f80c54dfe4f934d008a6e
  • =<7.0.*
Dismissed
(max. allowed matches exceeded)
created 2 months, 1 week ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
i2c: dev: prevent integer overflow in I2C_TIMEOUT ioctl

In the Linux kernel, the following vulnerability has been resolved: i2c: dev: prevent integer overflow in I2C_TIMEOUT ioctl While fuzzing with Syzkaller, a persistent `schedule_timeout: wrong timeout value` warning was observed, accompanied by SMBus controller state machine corruption. The I2C_TIMEOUT ioctl accepts a user-provided timeout in multiples of 10 ms. The user argument is checked against INT_MAX, but it is subsequently multiplied by 10 before being passed to msecs_to_jiffies(). A malicious user can pass a large value (e.g., 429496729) that passes the `arg > INT_MAX` check but overflows when multiplied by 10. This results in a truncated 32-bit unsigned value that bypasses the internal `(int)m < 0` check in `msecs_to_jiffies()`. The truncated value is then assigned to `client->adapter->timeout` (a signed 32-bit int), which is reinterpreted as a negative number. When passed to wait_for_completion_timeout(), this negative value undergoes sign extension to a 64-bit unsigned long, triggering the `schedule_timeout` warning and causing premature returns. This leaves the SMBus state machine in an unrecoverable state, constituting a local Denial of Service (DoS). Fix this by bounding the user argument to `INT_MAX / 10`. [wsa: move the comment as well]

Affected products

Linux
  • <ff02add34ffd03449b8115904ebe2ec4fed022d4
  • <7.0.13
  • =<*
  • =<5.10.*
  • <943e318eedbeaeea08ece3f5dd44c982f4ed2ef5
  • =<6.12.*
  • <aa6ef734016912653a909477fb30aeb66c98b3a2
  • =<6.1.*
  • <5.10.259
  • =<6.6.*
  • <6.6.143
  • <5.15.210
  • <6.1.176
  • <e9ffd5f5050fbb199d270a85614cd27ebed6fbac
  • <0b88ecfbc9dc33b4db8836c37b50cf174e6c0691
  • <617eb7c0961a8dfcfc811844a6396e406b2923ea
  • <4576621dc6577f21a032acfd16c3ad61907a5ea7
  • <6.12.94
  • =<5.15.*
  • <ffbcf31f032eb454ebfd29309f51366fe57f4ac4
  • =<6.18.*
  • =<7.0.*
  • <6.18.36
Dismissed
(max. allowed matches exceeded)
created 2 months, 1 week ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
batman-adv: tp_meter: avoid use of uninit sender vars

In the Linux kernel, the following vulnerability has been resolved: batman-adv: tp_meter: avoid use of uninit sender vars batadv_tp_recv_ack() and batadv_tp_stop() are only valid for tp_vars in the BATADV_TP_SENDER role. When called with a BATADV_TP_RECEIVER role, it proceeds to read sender-only members that were never initialized, leading to undefined behavior. This can be triggered when a node that is currently acting as a receiver in an ongoing tp_meter session receives a malicious ACK packet. Guard against this by checking tp_vars->role immediately after the lookup and bailing out if it is not BATADV_TP_SENDER, before any of those members are accessed.

Affected products

Linux
  • <1a21c055f66e78973712a4a1be2a554f1ee2e4f4
  • <6c65cf23d4c6170fcf5714c32aa64689718cb142
  • =<6.1.*
  • =<*
  • <4.8
  • =<5.15.*
  • <9884c9c02d3c90e9215db3c5128f59045d20ae91
  • =<5.10.*
  • ==4.8
  • =<6.18.*
  • =<7.0.*
  • =<6.6.*
  • =<6.12.*
  • <53f931e0146ae5bdab4cba302646827d06b3794b
  • <85397e48afe6be83ffca5ad3f4792296bfc81d3d
  • <dc2ae5fbd2dadc26735092f140b246841d969a11
  • <ecdaa3e4d91040206afe21bc8a0d1198a0971ff3
  • <0e388af04b3958b178a1b979527f93eb46ea1fee
Dismissed
(max. allowed matches exceeded)
created 2 months, 1 week ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
crypto: jitterentropy - replace long-held spinlock with mutex

In the Linux kernel, the following vulnerability has been resolved: crypto: jitterentropy - replace long-held spinlock with mutex jent_kcapi_random() serializes the shared jitterentropy state, but it currently holds a spinlock across the jent_read_entropy() call. That path performs expensive jitter collection and SHA3 conditioning, so parallel readers can trigger stalls as contending waiters spin for the same lock. To prevent non-preemptible lock hold, replace rng->jent_lock with a mutex so contended readers sleep instead of spinning on a shared lock held across expensive entropy generation.

Affected products

Linux
  • ==4.2
  • <01d798e9feb30212952d4e992801ba6bd6a82351
  • =<*
  • <ff734dbd9e2432601a6dcd167cfb0bf8a36d1880
  • <ec427dc5286da1ed08f2d510e2147a7581b0cb02
  • <4.2
  • =<6.18.*
  • <4c03e6eb98443dc4d6d422a9780034a5b75376b4
  • =<6.12.*
  • =<6.6.*
  • <18216b8ab6904753eaf31baf453cb02ecd202ba4
  • =<7.0.*
Dismissed
(max. allowed matches exceeded)
created 2 months, 1 week ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
net: tls: fix strparser anchor skb leak on offload RX setup failure

In the Linux kernel, the following vulnerability has been resolved: net: tls: fix strparser anchor skb leak on offload RX setup failure When tls_set_device_offload_rx() fails at tls_dev_add(), the error path calls tls_sw_free_resources_rx() to clean up the SW context that was initialized by tls_set_sw_offload(). This function calls tls_sw_release_resources_rx() (which stops the strparser via tls_strp_stop()) and tls_sw_free_ctx_rx() (which kfrees the context), but never frees the anchor skb that was allocated by alloc_skb(0) in tls_strp_init(). Note that tls_sw_free_resources_rx() is exclusively used for this "failed to start offload" code path, there's no other caller. The leak did not exist before commit 84c61fe1a75b ("tls: rx: do not use the standard strparser"), because the standard strparser doesn't try to pre-allocate an skb. The normal close path in tls_sk_proto_close() handles cleanup by calling tls_sw_strparser_done() (which calls tls_strp_done()) after dropping the socket lock, because tls_strp_done() does cancel_work_sync() and the strparser work handler takes the socket lock.

Affected products

Linux
  • <3c405dfa9619e506e75b8e41f8b29a5b99731877
  • <9c54e76f8d6eb11735918777ef0e0509e089557d
  • =<6.1.*
  • <bd07fe6c38b9e44ff3fc02692a53f095c5cc9afc
  • =<*
  • <0c9f399b37ce22a5ed94cc51f03ed07ac7f38e32
  • <58689498ca3384851145a754dbb1d8ed1cf9fb54
  • =<6.18.*
  • =<6.6.*
  • =<6.12.*
  • =<7.0.*
  • <688f12aa44511dd57e448eb670075c6302ad1dc1
  • <6.0
  • ==6.0
Dismissed
(max. allowed matches exceeded)
created 2 months, 1 week ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
memory: tegra124-emc: Fix dll_change check

In the Linux kernel, the following vulnerability has been resolved: memory: tegra124-emc: Fix dll_change check The code checking whether the specified memory timing enables DLL in the EMRS register was reversed. DLL is enabled if bit A0 is low. Fix the check.

Affected products

Linux
  • ==4.2
  • =<6.1.*
  • <db0ae80865b515cc0b705c85877ec00f7eebe9fe
  • =<*
  • <a85967331144fde9300be38bb44d2558eb6b742e
  • <1793249c067a4b28e1aba0ad0e4d73aa9f9e165a
  • =<5.15.*
  • <7e19e72f306484996c52ff96cc92f69b78ed5435
  • =<5.10.*
  • <4.2
  • =<6.18.*
  • <05f138fc7e27ee8e7a83ccf966c3fa26cda44dda
  • <1ebbbef47d11cc90219c081492ccf995aaa3e9b3
  • <9597ab9a8296ab337e6820f8a717ff621078b632
  • =<6.6.*
  • =<6.12.*
  • =<7.0.*
  • <2369b1831161356e1bcb51385d3e532dc4fe2771
Dismissed
(max. allowed matches exceeded)
created 2 months, 1 week ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
quota: Fix race of dquot_scan_active() with quota deactivation

In the Linux kernel, the following vulnerability has been resolved: quota: Fix race of dquot_scan_active() with quota deactivation dquot_scan_active() can race with quota deactivation in quota_release_workfn() like: CPU0 (quota_release_workfn) CPU1 (dquot_scan_active) ============================== ============================== spin_lock(&dq_list_lock); list_replace_init( &releasing_dquots, &rls_head); /* dquot X on rls_head, dq_count == 0, DQ_ACTIVE_B still set */ spin_unlock(&dq_list_lock); synchronize_srcu(&dquot_srcu); spin_lock(&dq_list_lock); list_for_each_entry(dquot, &inuse_list, dq_inuse) { /* finds dquot X */ dquot_active(X) -> true atomic_inc(&X->dq_count); } spin_unlock(&dq_list_lock); spin_lock(&dq_list_lock); dquot = list_first_entry(&rls_head); WARN_ON_ONCE(atomic_read(&dquot->dq_count)); The problem is not only a cosmetic one as under memory pressure the caller of dquot_scan_active() can end up working on freed dquot. Fix the problem by making sure the dquot is removed from releasing list when we acquire a reference to it.

Affected products

Linux
  • <82cbdb4c1ebb5ea7d7bd45c18d3483b5bd32ebc1
  • <61e25f664dc2a08299e07d84c85776abc2350f75
  • =<*
  • =<5.10.*
  • <5.5
  • ==6.6
  • =<6.12.*
  • <6.1.175
  • <5.10.258
  • <e93ab401da4b2e2c1b8ef2424de2f238d51c8b2d
  • =<6.1.*
  • ==bb7e3a019b52d829949d02b64ebab37838148fbf
  • <fdd424d7c35633ac577fd87d1b043d1b8a6cd350
  • =<6.6.*
  • <2bdc80f4619411e5bd4a3ef23f51e14021ed457c
  • <6.6
  • ==061a18239ced5eb086967a2b4451cb1cc5ce0702
  • ==2a1ddddba6541143c8f73962f3021f1789114284
  • <4.20
  • <f9438cb8c8ec3adc84b2b450a3aab0123d074c3b
  • <6.6
  • <5.15.209
  • =<5.15.*
  • <ac8a2e0d287ebf35e5d7e51e260b4e146648ba4a
  • =<6.18.*
  • =<7.0.*
  • <6678dde265708003c2b42551af4a2e3cb05decd5
Dismissed
(max. allowed matches exceeded)
created 2 months, 1 week ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
smb/client: fix possible infinite loop and oob read in symlink_data()

In the Linux kernel, the following vulnerability has been resolved: smb/client: fix possible infinite loop and oob read in symlink_data() On 32-bit architectures, the infinite loop is as follows: len = p->ErrorDataLength == 0xfffffff8 u8 *next = p->ErrorContextData + len next == p On 32-bit architectures, the out-of-bounds read is as follows: len = p->ErrorDataLength == 0xfffffff0 u8 *next = p->ErrorContextData + len next == (u8 *)p - 8

Affected products

Linux
  • <7d9a7f1f96cd617ee9e75bb22217c709038e26b8
  • =<6.1.*
  • <97a05b0ae9ea5ec052be2eef0f9cc7ce03501bbb
  • ==6.1
  • =<*
  • =<6.18.*
  • <1cfa2d59f669db28d6292d10ff87ca6837c781b0
  • =<7.0.*
  • <cd4b9b662f0fb9aa97ee6bf9034eca76fc6cab23
  • ==2d046892a493d9760c35fdaefc3017f27f91b621
  • <6.1
  • <b41598bf54b3fe528994e573df6008f8f4d0a4f4
  • <6.1
  • =<6.6.*
  • =<6.12.*
  • <1b9331b16b0ed9414dcf7583d8134bdfeb117aae
Dismissed
(max. allowed matches exceeded)
created 2 months, 1 week ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
bpf: fix mm lifecycle in open-coded task_vma iterator

In the Linux kernel, the following vulnerability has been resolved: bpf: fix mm lifecycle in open-coded task_vma iterator The open-coded task_vma iterator reads task->mm locklessly and acquires mmap_read_trylock() but never calls mmget(). If the task exits concurrently, the mm_struct can be freed as it is not SLAB_TYPESAFE_BY_RCU, resulting in a use-after-free. Safely read task->mm with a trylock on alloc_lock and acquire an mm reference. Drop the reference via bpf_iter_mmput_async() in _destroy() and error paths. bpf_iter_mmput_async() is a local wrapper around mmput_async() with a fallback to mmput() on !CONFIG_MMU. Reject irqs-disabled contexts (including NMI) up front. Operations used by _next() and _destroy() (mmap_read_unlock, bpf_iter_mmput_async) take spinlocks with IRQs disabled (pool->lock, pi_lock). Running from NMI or from a tracepoint that fires with those locks held could deadlock. A trylock on alloc_lock is used instead of the blocking task_lock() (get_task_mm) to avoid a deadlock when a softirq BPF program iterates a task that already holds its alloc_lock on the same CPU.

Affected products

Linux
  • <d0862de7c866c5bd7c32531f66738c21197af888
  • =<*
  • <239cec25a22662dbd80f57d94b38178c8be95269
  • ==6.7
  • <6.7
  • <43683bb280330f3d36f0f2a3932a4867b9603e9c
  • =<6.18.*
  • =<7.0.*
  • =<6.12.*
  • <d8e27d2d22b6e2df3a0125b8c08e9aace38c954c
Dismissed
(max. allowed matches exceeded)
created 2 months, 1 week ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
bpf: Validate node_id in arena_alloc_pages()

In the Linux kernel, the following vulnerability has been resolved: bpf: Validate node_id in arena_alloc_pages() arena_alloc_pages() accepts a plain int node_id and forwards it through the entire allocation chain without any bounds checking. Validate node_id before passing it down the allocation chain in arena_alloc_pages().

Affected products

Linux
  • <fb66e20130f95a93ffea1677252526a9e39170b2
  • <31d3b4b28e55835646d6829d60023f730dd34e85
  • =<*
  • <6.9
  • =<6.18.*
  • ==6.9
  • <2845989f2ebaf7848e4eccf9a779daf3156ea0a5
  • =<6.12.*
  • =<7.0.*
  • <e15900888c09480a4c632bc598f1c5bd39bed6d6