Nixpkgs security tracker

Login with GitHub

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 8 hours ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
drm/amdgpu/vce1: Fix VCE 1 firmware size and offsets

In the Linux kernel, the following vulnerability has been resolved: drm/amdgpu/vce1: Fix VCE 1 firmware size and offsets The VCPU BO contains the actual FW at an offset, but it was not calculated into the VCPU BO size. Subtract this from the FW size to make sure there is no out of bounds access. Make sure the stack and data offsets are aligned to the 32K TLB size. Check that the FW microcode actually fits in the space that is reserved for it. (cherry picked from commit c16fe59f622a080fc457a57b3e8f14c780699449)

Affected products

Linux
  • <ce0de178ef08408f6ba8f2e9a13bf52fbe5852f4
  • =<7.0.*
  • ==6.19
  • <3e5a1d5bb2ff061e64c7992f8e5404dfd4c2d0f3
  • =<*
  • <6.19
Dismissed
(max. allowed matches exceeded)
created 8 hours ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
drm/xe/gsc: Fix double-free of managed BO in error path

In the Linux kernel, the following vulnerability has been resolved: drm/xe/gsc: Fix double-free of managed BO in error path The error path in xe_gsc_init_post_hwconfig() explicitly frees a BO allocated with xe_managed_bo_create_pin_map() via xe_bo_unpin_map_no_vm(). Since the managed BO already has a devm cleanup action registered, this causes a double-free when devm unwinds during probe failure. Remove the explicit free and let devm handle it, consistent with all other xe_managed_bo_create_pin_map() callers. (cherry picked from commit 71d61e3e299a17139e47f980a4d6f425b2c59bf7)

Affected products

Linux
  • <7cb975fcd4777e7bad688f66aa0c10c16dd8276b
  • ==6.12
  • =<6.18.*
  • <6.12
  • =<7.0.*
  • <2c890e71ae26fa32f5a96c3694b71a2c310940e7
  • =<6.12.*
  • <889f70de2b51a877339e1979aab95111b41bed75
  • =<*
  • <d3ded53fab90996e7d94a39049e11962dd066725
Dismissed
(max. allowed matches exceeded)
created 8 hours ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
proc: protect ptrace_may_access() with exec_update_lock (FD links)

In the Linux kernel, the following vulnerability has been resolved: proc: protect ptrace_may_access() with exec_update_lock (FD links) proc_pid_get_link() and proc_pid_readlink() currently look up the task from the pid once, then do the ptrace access check on that task, then look up the task from the pid a second time to do the actual access. That's racy in several ways. To fix it, pass the task to the ->proc_get_link() handler, and instead of proc_fd_access_allowed(), introduce a new helper call_proc_get_link() that looks up and locks the task, does the access check, and calls ->proc_get_link().

Affected products

Linux
  • <6253dfee5afba536bb54fc6fe6c091c3758fafe1
  • <2.6.18
  • =<6.18.*
  • <65bf0d2b6e914f1448d6a2fde193dcf60936a651
  • <138c692d2b2d63d26f2eb957d0e4fcc5d61f9ff2
  • <6255da28d4bb5349fe18e84cb043ccd394eba75d
  • <83b17872e3166c295c599279fc9562ac3840c638
  • =<6.12.*
  • =<7.1.*
  • <497c6bae5167428596575f20af6613ff5671f383
  • =<6.1.*
  • =<*
  • =<6.6.*
  • <de497d7aa2fae453a7e7c8f7d3e8682e565e3aaf
  • ==2.6.18
  • =<5.15.*
  • <dfd1894cb64cbd8758b461ed713800fe73db4f82
  • =<5.10.*
Dismissed
(max. allowed matches exceeded)
created 8 hours ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
rust: block: fix GenDisk cleanup paths

In the Linux kernel, the following vulnerability has been resolved: rust: block: fix GenDisk cleanup paths GenDiskBuilder::build() still has fallible work after __blk_mq_alloc_disk(), but its error path only recovers the foreign queue data. That leaks the temporary gendisk and request_queue until later teardown. If the caller moved the last Arc<TagSet<T>> into build(), the leaked queue can retain blk-mq state after the tag set is dropped. Fix the pre-registration failure path by dropping the temporary gendisk reference with put_disk() before recovering queue_data, so disk_release() can tear down the owned queue. Also pair GenDisk::drop() with put_disk() after del_gendisk(). Once a Rust GenDisk has been added with device_add_disk(), del_gendisk() only unregisters it; the final gendisk reference still has to be dropped to complete the release path.

Affected products

Linux
  • =<6.18.*
  • =<6.12.*
  • <d1dcaa5229a63a6b6df7e0f673fe576cf3d6e8cb
  • =<7.1.*
  • <2957771379fa335103a4b539db57bb2271e12142
  • <e7636f26f77070a529c26d65afd217514ce85ce4
  • <6.11
  • =<*
  • <6822a2685b4da9a87efd1fce4b042678a31ff734
  • ==6.11
Dismissed
(max. allowed matches exceeded)
created 8 hours ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
proc: protect ptrace_may_access() with exec_update_lock (part 1)

In the Linux kernel, the following vulnerability has been resolved: proc: protect ptrace_may_access() with exec_update_lock (part 1) Fix the easy cases where procfs currently calls ptrace_may_access() without exec_update_lock protection, where the fix is to simply add the extra lock or use mm_access(): - do_task_stat(): grab exec_update_lock - proc_pid_wchan(): grab exec_update_lock - proc_map_files_lookup(): use mm_access() instead of get_task_mm() - proc_map_files_readdir(): use mm_access() instead of get_task_mm() - proc_ns_get_link(): grab exec_update_lock - proc_ns_readlink(): grab exec_update_lock

Affected products

Linux
  • <2.6.30
  • <6650527444dadc63d84aa939d14ecba4fadb2f69
  • <2.6.30
  • =<7.1.*
  • =<6.1.*
  • =<5.15.*
  • <ae1e630bcaac739f625822078edbaea98366930d
  • =<5.10.*
  • <c1cfd63326f5d09999134e9052c353faf738286e
  • ==334ed22054b2ec8477e4409e214fc139cf937ef6
  • <2.6.28
  • <bb43679356f1f2a4c6b1c88aec4f021e5b5c74e9
  • <d54f14655fd7d7b293698a8b6918563c4c0465e7
  • <7456ae990a9738962b33146916fabca62ae3d4e0
  • ==2.6.30
  • =<6.6.*
  • ==6b06d6282100dd5aacf7d45443d651a1995bd9c4
  • <4bfe8c481846cee52473a2f7d7b30ee8e6749fc4
  • =<6.18.*
  • <f9b4b03ccc9c69bf7f7298d4559906ebea7143b3
  • =<6.12.*
  • =<*
Dismissed
(max. allowed matches exceeded)
created 8 hours ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
bpf: Reject fragmented frames in devmap

In the Linux kernel, the following vulnerability has been resolved: bpf: Reject fragmented frames in devmap Devmap broadcast redirects clone the packet for all but the last destination. For native XDP, that clone path copies only the linear xdp_frame data, while fragmented frames keep skb_shared_info in tailroom outside the linear area. Cloning such a frame leaves XDP_FLAGS_HAS_FRAGS set but without valid frag metadata, and the later free path can interpret uninitialized tail data as skb_shared_info, leading to an out-of-bounds access during frame return. Reject fragmented native XDP frames in dev_map_enqueue_clone(). Add the same restriction to the generic XDP clone path in dev_map_redirect_clone(). Generic XDP represents fragmented packets as nonlinear skbs, and rejecting them here keeps clone-based broadcast support aligned between native and generic XDP.

Affected products

Linux
  • <5.14
  • <a9bb2d9c798cb62a4050a991c27b752770c33afe
  • =<6.18.*
  • <c5b4f5efcb55c1af3fe44ff712d31b7fb098a831
  • <47baddc856ae7e93a565dd9deeb797999b179466
  • =<6.12.*
  • <aa496720618f1a6054f1c870bf10b4f6c99bf656
  • =<7.1.*
  • <51d07c12ca411e692c424ecdabf077f1e61a61be
  • ==5.14
  • =<6.1.*
  • =<6.6.*
  • =<*
  • =<5.15.*
  • <bccbab36ff228e0825eb85d9b0f9b8434cd0a399
  • <07a4c11ee8ef4abcb39d922e9e410ae269671cdf
Dismissed
(max. allowed matches exceeded)
created 8 hours ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
userfaultfd: gate must_wait writability check on pte_present()

In the Linux kernel, the following vulnerability has been resolved: userfaultfd: gate must_wait writability check on pte_present() userfaultfd_must_wait() and userfaultfd_huge_must_wait() read the PTE without taking the page table lock and then apply pte_write() / huge_pte_write() to it. Those accessors decode bits from the present encoding only; on a swap or migration entry they read the offset bits that happen to share the same position and return an undefined result. The intent of the check is "is this fault still WP-blocked?". A non-marker swap entry means the page is in transit -- the userfault context the original fault delivered against is no longer the same, and the swap-in or migration completion path will re-deliver a fresh fault if userspace still needs to handle it. Worst case under the current code the garbage write bit says "wait", and the thread stays asleep until a UFFDIO_WAKE that may never arrive. Gate the writability check on pte_present() so the lockless re-check only inspects present-PTE bits when the entry is actually present. The non-present, non-marker case returns "don't wait" and lets the fault path retry.

Affected products

Linux
  • <710183888174639a15fcec16cd1af766b8480bb7
  • <60d696a037eeeedfb57756dfe7ec08a1587c8631
  • <4.11
  • =<6.18.*
  • <8e80af52db652fbc41320eee45a4f73bc029faf2
  • <d4026417e8184d13850a0bad4d96ceb6ed9f7152
  • ==4.11
  • =<6.12.*
  • <a5700a4c1c9099ac2ac73fe8a09cf059972e0d2f
  • =<7.1.*
  • <5f4dbdb0a87596214076b20b94f2b71b522170b3
  • <a6e9a4939e359599701b1da351e84f72e021443a
  • =<6.1.*
  • =<*
  • =<6.6.*
  • <29e6f952c5fb7dc1d6b90fe5b7f36063d44ddae0
  • =<5.15.*
  • =<5.10.*
Dismissed
(max. allowed matches exceeded)
created 8 hours ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
binder: fix UAF in binder_thread_release()

In the Linux kernel, the following vulnerability has been resolved: binder: fix UAF in binder_thread_release() When a thread exits, binder_thread_release() walks its transaction stack to clear the t->from and t->to_proc that correspond with the exiting thread. However, a process dying in parallel might attempt to kfree some of these transactions. And if one of them has no associated t->to_proc, the t->to_proc->inner_lock will not be acquired. This means that transaction accesses in binder_thread_release() after t->to_proc has been cleared might race with binder_free_transaction() and cause a use-after-free error as reported by KASAN: ================================================================== BUG: KASAN: slab-use-after-free in binder_thread_release+0x5d0/0x798 Write of size 8 at addr ffff000016627500 by task X/715 CPU: 17 UID: 0 PID: 715 Comm: X Not tainted 7.1.0-rc5-00149-g8fde5d1d47f6 #30 PREEMPT Hardware name: linux,dummy-virt (DT) Call trace: binder_thread_release+0x5d0/0x798 binder_ioctl+0x12c0/0x299c [...] Allocated by task 717 on cpu 18 at 67.267803s: __kasan_kmalloc+0xa0/0xbc __kmalloc_cache_noprof+0x174/0x444 binder_transaction+0x554/0x8150 binder_thread_write+0xa30/0x4354 binder_ioctl+0x20f0/0x299c [...] Freed by task 202 on cpu 18 at 90.416221s: __kasan_slab_free+0x58/0x80 kfree+0x1a0/0x4a4 binder_free_transaction+0x150/0x294 binder_send_failed_reply+0x398/0x6d8 binder_release_work+0x3e4/0x4ec binder_deferred_func+0xbd8/0x104c [...] ================================================================== In order to avoid this, make sure that binder_free_transaction() reads the t->to_proc under the transaction lock. This will serialize the transaction release with the accesses in binder_thread_release(). Plus, it matches the documented locking rules for @to_proc.

Affected products

Linux
  • <ea02df466df60ecd758eb3b4df3f0cadc5c886ce
  • <38e1a71728e5795b670cc159c18e286a40aeebb4
  • <114a116aaa5f0295376cdf12da743c5bce3b20ce
  • =<6.18.*
  • <e63032dc715026a96bcaa13d375a8e15c91caa84
  • ==4.14
  • <df1a17abba8d6fac5f965adcb8113ceace6e4949
  • <4.14
  • =<6.12.*
  • =<7.1.*
  • <faa070c7ad8ba25dcd0b12d7cdbb419e336f5391
  • =<6.1.*
  • =<*
  • =<6.6.*
  • <ef5439ba5b9ac93349f5df12ef88b42a0ce26340
  • =<5.15.*
  • =<5.10.*
  • <1f96f8c0a6ed4f6d01d3dd29ad0cbf08dde96082
Dismissed
(max. allowed matches exceeded)
created 8 hours ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
Input: goodix - clamp the device-reported contact count

In the Linux kernel, the following vulnerability has been resolved: Input: goodix - clamp the device-reported contact count goodix_ts_read_input_report() copies the number of touch points reported by the device into an on-stack buffer u8 point_data[2 + GOODIX_MAX_CONTACT_SIZE * GOODIX_MAX_CONTACTS]; which is sized for at most GOODIX_MAX_CONTACTS (10) contacts. The only runtime check bounds the per-interrupt count against ts->max_touch_num, but that value is taken verbatim from a 4-bit field of the device configuration block and is never clamped: ts->max_touch_num = ts->config[MAX_CONTACTS_LOC] & 0x0f; The nibble can be 0..15, so a malfunctioning, malicious or counterfeit controller (or an attacker tampering with the I2C bus) can advertise up to 15 contacts. goodix_ts_read_input_report() then accepts a touch_num of up to 15 and the second goodix_i2c_read() writes ts->contact_size * (touch_num - 1) bytes past the one-contact header into point_data - up to 30 bytes (45 with the 9-byte report format) beyond the 92-byte buffer: a stack out-of-bounds write. Clamp max_touch_num to GOODIX_MAX_CONTACTS, the number of contacts point_data[] is sized for, when reading it from the configuration.

Affected products

Linux
  • <e825f352ef5271255cd08cc994b0dc25648a2f38
  • <4.1
  • =<5.10.*
  • <3b32303460155603d25444274856013d211d5e1f
  • =<6.18.*
  • =<6.12.*
  • ==4.1
  • =<7.1.*
  • <2a67668690129953e898923260a2dd1c7c196495
  • <46addbd13dbf4aacb71cfbca964a5e552d0f45ae
  • <4bfea9c3a0981c1c7fc5d1a1b27197b2de247902
  • =<6.1.*
  • =<6.6.*
  • =<*
  • =<5.15.*
  • <719d1a2c83a46be6bf81af905e4f6adb3d32dc28
  • <5ed62a96e06be4e94b8296b7932afee550a70e04
  • <98b2caef249183b572c04451365246f919707845
Dismissed
(max. allowed matches exceeded)
created 8 hours ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
mm: shrinker: fix shrinker_info teardown race with expansion

In the Linux kernel, the following vulnerability has been resolved: mm: shrinker: fix shrinker_info teardown race with expansion expand_shrinker_info() iterates all visible memcgs under shrinker_mutex, including memcgs that have not finished ->css_online() yet. Once pn->shrinker_info has been published, teardown must stay serialized with expand_shrinker_info() until that memcg is either fully online or no longer visible to iteration. Today alloc_shrinker_info() breaks that rule by dropping shrinker_mutex before freeing a partially initialized shrinker_info array, which may cause the following race: CPU0 CPU1 ==== ==== css_create --> list_add_tail_rcu(&css->sibling, &parent_css->children); online_css --> mem_cgroup_css_online --> alloc_shrinker_info --> alloc node0 info rcu_assign_pointer(C->node0->shrinker_info, old0) alloc node1 info -> FAIL -> goto err mutex_unlock(shrinker_mutex) shrinker_alloc() --> shrinker_memcg_alloc --> mutex_lock(shrinker_mutex) expand_shrinker_info --> mem_cgroup_iter see the memcg expand_one_shrinker_info --> old0 = C->node0->shrinker_info memcpy(new->unit, old0->unit, ...); free_shrinker_info --> kvfree(old0); /* double free !! */ kvfree_rcu(old0, rcu); The same problem exists later in mem_cgroup_css_online(). If alloc_shrinker_info() succeeds but a subsequent objcg allocation fails, the free_objcg -> free_shrinker_info() unwind path tears down the already published pn->shrinker_info arrays without shrinker_mutex. The expand_one_shrinker_info() can race with that teardown in the same way, leading to use-after-free or double-free of the old shrinker_info. Fix this by serializing shrinker_info teardown with shrinker_mutex, and by keeping alloc_shrinker_info() error cleanup inside the locked section.

Affected products

Linux
  • =<6.18.*
  • <6465ff3ce65131c774a312d450abe10f4b9f3875
  • <b9a280a9a454ed514636351d53fe2a233dc5054b
  • =<6.12.*
  • <284c267f013e45d8c89d9fb9373105dc8e6c0947
  • =<7.1.*
  • =<*
  • ==6.7
  • <6.7
  • <65476d31d8056e859c48580f82295ce159196ffe